Простой пример, чтобы понять, насколько просто интегрировать аутентификацию веб-токена json в приложение узла

Весь код доступен на Github здесь:
https://github.com/FrancescoXX/Node-jwt-authentication

Мы не будем подробно рассказывать, что такое веб-токен Json, но вы можете проверить официальную страницу здесь:



Шаг 0: настройка

Прежде всего, давайте настроим довольно простое приложение узла.

Мы не будем вдаваться в подробности, что такое узловое приложение, но проект будет довольно простым.

Примечание: если вы клонировали этот репозиторий из github:

  • npm install (для установки зависимостей)
  • узел index.js (для запуска приложения)

Index.js

Здесь мы настраиваем очень простое приложение узла, вызываем bodyparser для анализа тела запроса и решения некоторых проблем CORS.

Затем мы запускаем приложение на порту 3000, смело используйте другой порт, если он уже используется.

Шаг 1. Откройте конечную точку

Давайте сделаем простой запрос к этой открытой конечной точке

[GET] / public / open

маршрут public.js

Контроллер public.js

Ничего особенного, мы просто получаем приветственное сообщение :)

Шаг 2: охраняемая конечная точка

Теперь давайте попробуем сделать GET-запрос к защищенной конечной точке:

[ПОЛУЧИТЬ] / секретный / охраняемый

Приложение нас заблокировало, отправив сообщение об ошибке

Как приложение защищало эту конечную точку?

Давайте взглянем:

secret.js

Да, но

как приложение поняло, что это конечная точка для его защиты?

Ответ заключается в том, что была вызвана функция промежуточного программного обеспечения:

Обратите внимание на часть isAuth, так как она очень важна!

Когда мы получаем запрос, вызывается функция isAuth, которая находится в другом файле (модуле):

isAuth.js

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

Шаг 3. Получите токен

Чтобы получить доступ к «Секретной области», нам необходимо правильно пройти аутентификацию, передав токен в заголовок: Авторизация (конечно, это будет реализовано в Frontend Client, и пользователям не нужно знать, как добавить этот заголовок!)

Давайте вызовем нужную конечную точку с адресом электронной почты и паролем:

auth.js

Для правильной аутентификации мы делаем запрос [POST] в конечной точке / auth / token, отправляя адрес электронной почты и пароль в надлежащем теле.

Как токен создается JWT?

Обратите внимание на эту интересную часть: здесь мы создаем новый токен с некоторым значением, частной строкой, хранящейся на сервере, и сроком действия.

Теперь у нас есть жетон !! Да!

Шаг 4. Аутентификация

Прежде чем пытаться использовать правильный токен, давайте попробуем передать недопустимый токен в заголовке…

Здесь ответ другой: «Токен недействителен».

Мы передаем явно недействительный токен, и скрипт его распознает

но это не подтверждает !!

Наконец, давайте попробуем тот же запрос, вставив в заголовок авторизации правильное значение, которое мы получили с запросом / auth / token…

Мы сделали это!

Это всего лишь пример, но он демонстрирует, как мы можем защитить некоторые конечные точки, запрашивая токен в запросе!

Весь код доступен на Github здесь:
https://github.com/FrancescoXX/Node-jwt-authentication