Привет ребята ! 👋
Сегодня давайте рассмотрим небольшое приложение в чате с Реактивные крюки , Firebase и новый пакет имени Средний Действительно 🔥
Цель этой статьи – представить вам SDK SDK и как этот маленький пакет может быть очень эффективным с точки зрения безопасности для ваших приложений!
Конечное шифрование неструктурированных данных могут быть сложными и дорогими для перестройки, необходимы для защиты конфиденциальных данных ваших приложений. С Средний СДК Мы выполняем сквозное шифрование на хранимых данных, созданных или принятых вашим приложениям.
Давайте возьмем пример с Приложение чата Действительно 💪.
Структура нашего приложения чата 🧰
Выше это Демонация нашего приложения чата В реакции с концерующей системой шифрования, включая несколько особенностей:
🟢 Создать комнату 🟢 Добавить/удалить пользователей из комнаты 🟢 Изменить комнату 🟢 Регистрация/логин 🟢 Состояние пользователя 🟢 Шифрация и расшифровка сообщения
Основные используемые инструменты:
Firebase , готовый к использованию Framework, которая позволяет нам создавать постоянную систему аутентификации, сохранить наши зашифрованные сообщения в базе данных и мгновенно получать их, когда пользователь поставляет новое сообщение.
Реагировать Что будет нашей библиотекой Frontend для выполнения и дизайна простых представлений для каждого состояния в нашем приложении.
Средний С Библиотека под ключ Мы будем использовать, чтобы принести шифрование в конечном итоге в чате.
Система аутентирования 👨💻.
Только 3 пути для нашего чата приложения с аутентификацией. Регистрация , авторизоваться и Управление комнатами Отказ
Мы определяем, допускаем ли маршруты для аутентифицированных пользователей или нет.
Деривация пароля 🔏.
Обычно мы бы отправим Firebase пароль в ClearText, а затем Firebase будет получать его с безопасной функцией, такой как Scrypt Чтобы избежать его в базе данных.
В нашем случае мы хотим предотвратить всю услугу Firebase для чтения пароля, даже если он не сохраняется, потому что мы собираемся использовать его для защиты Средняя идентичность конец-2-конце (даже из Firebase).
Чтобы сделать это, мы просто делаем ту же операцию Firebase, но до Давая ему Firebase: мы имеем пароль с безопасной функцией ( Scrypt ), а затем используйте его в качестве пароля.
Зарегистрироваться 👤.
Чтобы создать пользователь в этом приложении, достаточно простая форма, содержащая 3 поля:
Зарегистрироваться код
Ничто не очень сложное в коде. Мы просим Firebase создать аутентификацию через электронную почту и пароль, предоставленный пользователем.
А также добавить некоторую информацию о пользователе, как имя и URL фото.
Затем мы добавляем запечатанный слой приложений для создания ваших будущих зашифрованных сообщений.
Войти 👤.
Затем логин. Классическая форма ( Email / Пароль ) Для доступа к номерам и уметь общаться с другими пользователями.
Так же, как на регистрацию. Мы извлекаем Аутентификация Firebase пользователя и его Средний счет .
Комнаты 👨👩👦👦.
Вот где происходит интересная часть.
На этом приложении можно Чат через 1-1 с другим пользователем, но и для Чат с группой пользователей в пользовательской комнате.
Создать комнату 🧸
Давайте расскажем этот код вместе:
Во-первых, мы отправляем данные формы в Firebase . Имя комнаты и выбранные пользователи обязательны.
Затем мы создаем зашифрованную сессию, используя Средний СДК Отказ Это позволит шифровать и расшифровать сообщение для этой комнаты.
И, наконец, мы хотим отправить первое зашифрованное сообщение, чтобы приветствовать пользователям этой комнаты.
Отправить зашифрованные сообщения 🔏
Теперь давайте пообщаться! Но помните, мы хотим Конечное шифрование для сообщений.
Перед каждым созданным сообщением нам необходимо проверить, есть ли у нас аутентифицированный сеанс SELD. Если нет, создайте этот сеанс с SDK 🔒.
Затем сеанс позволяет шифровать строку, которая является нашим сообщением.
Алиса 👩 Отправляет сообщение на Боб 👨.
"Hello my friend"
Мы называем метод шифровать Для нашего сообщения выше:
Сообщение станет
"{\"sessionId\":\"NazDAYyuRw2lDKS0VaianA\",\"data\":\"8RwaOppCD3uIJVFv2LoP3XGXpomj0xsMv4qmMVy30Vdqor2w0+DVCXu3j13PEyN2KfJm6SiSrWDRMDziiiOUjQ==\"}"
Теперь Боб-👨 (а другие пользователи комнаты) надо расшифровать сообщение Alice 👩 Отказ Как мы можем сделать это ?
Расшифрованные сообщения 🔐.
Теперь, когда мы знаем, как отправить зашифрованное сообщение, давайте посмотрим, как восстановить сообщение мгновенно и расшифровать его для других пользователей.
Мы используем ценность Мероприятие, чтобы прочитать наши сообщения, как они существовали во время мероприятия. Этот метод Срабатывает один раз, когда слушатель прикреплен и снова каждый раз, когда данные, включая детей, изменения.
Узнайте больше о Чтение и запись данных с Firebase 📂.
Мы извлекаем наш список сообщений каждый раз, когда добавляется сообщение. Таким образом, зашифрованное сообщение отображается, но теперь нам нужно иметь возможность расшифровать его:
Боб 👨 на самом деле видит :
"{\"sessionId\":\"NazDAYyuRw2lDKS0VaianA\",\"data\":\"8RwaOppCD3uIJVFv2LoP3XGXpomj0xsMv4qmMVy30Vdqor2w0+DVCXu3j13PEyN2KfJm6SiSrWDRMDziiiOUjQ==\"}"
Мы называем метод расшифровать Для нашего зашифрованного сообщения выше:
Боб 👨 теперь посмотришь :
"Hello my friend"
Теперь у нас есть общение в реальном времени с концевой системой шифрования 💪
Примечание: использовать SDK SWDK, перейдите в Seold.io Отказ
Воил
Ура 🍻 🍻 🍻 🍻
Если вам понравилось эту статью, вы можете следовать за мной на Twitter Или здесь на dev.to. Где я регулярно публикую советы по размеру кусания, относящиеся к HTML, CSS и JavaScript.
🤝 Обещание. ASLSETTELD () против обещания. Все () в JavaScript 🍭
Victor de la Fhouchardière · 16 августа20 · 2 мин. читать
📦 Профиль GitHub: правильный путь, чтобы показать последние события Dev + Bonus 🎁
Victor de la Fhouchardière · 5 августа20 · 4 мин. читать
Оригинал: “https://dev.to/viclafouch/create-a-secure-chat-application-with-react-hooks-firebase-and-seald-2bc1”