JWT для аутентификации в Nodejs и как Oauth2 решает некоторые проблемы, связанные с ним

В этой статье мы узнаем;

  1. что означает JWT
  2. Как использовать JWT для защиты конечной точки
  3. Определение Oauth2
  4. Преимущества Oauth2 перед JWT

Что такое JWT?

JWT означает «JSON Web Tokens» и представляет собой открытый, стандартный для отрасли метод RFC 7519 для безопасного представления требований между двумя сторонами.

Эти токены созданы сервером и содержат важную информацию о конкретном пользователе. Собираемые им данные состоят в основном из адресов электронной почты, идентификаторов пользователей, паролей, информации для входа в систему и другой информации. Все записи, сделанные с его помощью, сохраняются в формате JSON. Кроме того, в нем эффективно используется криптография.

Как использовать JWT для защиты конечной точки?

Используемый стек

  • Vscode: Рабочая среда
  • MongoDB: база данных
  • Nodejs : Открытый исходный код

Установленные пакеты

  • Express: Framework
  • Mongoose: Для подключения к базе данных
  • JSON веб-токен: Для аутентификации
  • Nodemon: Для перезапуска сервера
  • Postman: Документация### Время действовать###.
  • Создайте новый каталог и дайте ему любое имя. Для этой статьи я назвал ее jwt_class.
  • Откройте только что созданную директорию в VS Code и (в терминале) введите npm init -y для инициализации проекта.
  • Создайте главный файл входа Мой главный файл входа называется main.js в директории проекта. мы будем фокусироваться только на этом файле.
  • В конце первых нескольких шагов у вас должно быть ;
  • Импортируйте следующие пакеты: mongoose, express, jwt и nodemon. Затем добавьте пакеты с помощью терминала внутри VSCode.

  • Создайте модели, промежуточное ПО, контроллеры, маршруты и их файлы.

  • Создайте наш сервер и подключитесь к нашей базе данных в config/db.js

в main.js

  • Чтобы запустить наш сервер, отредактируйте объект scripts в нашем package.json на «test»: «echo «Error: no test specified», чтобы он выглядел так, как показано ниже.

  • Создайте схему пользователя в models/models.js

  • создайте пользователя для входа и регистрации в controllers/controllers.js и маршруты

войти

вход

в маршрутах

  • Используя Postman для тестирования, мы получим ответ, показанный ниже, после успешной регистрации и входа.

войти

войти

  • Мы смогли создать и войти в систему. Далее мы создадим маршрут, требующий в заголовке токен пользователя, который является JWT-токеном, сгенерированным нами ранее.

  • Создайте промежуточное ПО для аутентификации
    middleware/isAuth.js

  • Создайте маршрут /welcome и обновите main.js следующим образом, чтобы протестировать промежуточное ПО.

  • Результат в postman;

Определение Oauth2

OAuth 2.0, что расшифровывается как «Открытая авторизация», — это стандарт, разработанный для того, чтобы позволить веб-сайту или приложению получать доступ к ресурсам, размещенным другими веб-приложениями, от имени пользователя.

Преимущества Oauth2 перед JWT

  • OAuth2 имеет более широкий спектр использования, например, веб-сайт, браузер, API, различные приложения или ресурсы, в то время как JWT используется в основном для API. OAuth2 помогает в большем количестве программ, что дает ему преимущество перед ограниченным использованием JWT.
  • JWT определяет формат токена, в то время как OAuth занимается определением протоколов авторизации. OAuth в основном предназначен для аторизации, позволяя определенному пользователю иметь доступ к сервису любой длины, предоставленной владельцем.
  • OAuth использует хранилище как на стороне клиента, так и на стороне сервера, в то время как JWT должен использовать только хранилище на стороне клиента.
  • JWT имеет ограниченную область применения и случаи использования. OAuth очень гибкий и может быть легко использован в широком диапазоне ситуаций.

Оцените статью
devanswers.ru
Добавить комментарий