Node JS Express безопасный маршрут - PullRequest
0 голосов
/ 01 декабря 2019

Я хочу иметь какую-то аутентификацию для создания защищенных маршрутов.

Например, GET /forecastweather должен быть защищен. Хотя GET /generalweather не должен.

Я прочитал документацию по экспресс 4.x (https://expressjs.com/en/4x/api.html), но не могу найти функцию аутентификации. Я также посмотрел в req (https://expressjs.com/en/4x/api.html#req) документация, чтобы увидеть, есть ли атрибут для запроса, который я могу использовать.

Если я прав, у экспресса была базовая функция аутентификации, но она, похоже, исчезла. Каков наилучший способ защиты маршрутов с помощьюкакой-то жетон на предъявителя.

1 Ответ

0 голосов
/ 01 декабря 2019

Не существует «лучшего» способа сделать аутентификацию. Есть только несколько различных способов, и вам нужно решить, какой вариант лучше всего подходит для вашей ситуации.

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

  1. Токен в cookie (часто лучше всего подходит для доступа через браузер)
  2. Токен в пользовательском заголовке (часто используется для программного доступа к API)
  3. Токенв параметре запроса (не так часто)

Как только вы решите, как токен будет доставлен, вам нужно будет выяснить, как клиент получит свой токен. Обычно это будет отправка формы, которая содержит учетные данные (например, имя пользователя и пароль), а возвращение после успешной проверки этих учетных данных будет токеном.

Чтобы обработать эту форму, вы должны создатьОбработчик POST-запросов в Express и проверка учетных данных, возвращая токен, если учетные данные действительны.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...