nodejs маркер проверки подлинности паспорта


Я пишу приложение nodejs, которое я хотел бы использовать как веб-приложение, так и поставщик API. После аутентификации пользователя я хочу назначить этому пользователю токен, который будет использоваться для последующих запросов. Это отлично работает с паспортом для веб-приложения, так как я просто сериализую и десериализую пользователя с помощью токена в сеансе. Однако при ответе на запросы API, нет куки, чтобы установить для хранения информации о сеансе. В идеале паспорт будет искать маркер в сессии и тела. Есть ли способ настроить passport для этого?

2 67

2 ответа:

просто используйте маркер доступа на каждый запрос. Использование сеанса не требуется. Ниже приведен рабочий процесс:

POST /signin
  1. имя пользователя и пароль, размещенные в запросе клиента.
  2. сервер аутентифицирует пользователя с помощью локальной стратегии passport. Смотрите паспорт-местные.
  3. если учетные данные представляют действительного пользователя, сервер возвращает маркер доступа, созданный каким-либо генератором. node-jwt-simple is хороший выбор.
  4. если учетные данные недействительны, перенаправить на /signin.

когда клиент получает маркер доступа от сервера авторизации, он может выполнять запросы к защищенным ресурсам на сервере. Например:

GET /api/v1/somefunction?token='abcedf'

  1. клиент вызывает некоторый серверный api с аргументом маркера.
  2. сервер аутентифицирует маркер с помощью стратегии предъявителя паспорта. Видеть паспорт-http-предъявитель.

ссылки

сделайте безопасный API oauth с паспортом.js и экспресс.js (узел.js)

поскольку bnuhero упоминает, что вам не нужны сеансы (хотя этот подход тоже имеет свои достоинства). Вот проект котельной плиты, который я начинаю для этого: https://github.com/roblevintennis/passport-api-tokens

вот альтернатива и легко следовать tut (но он использует сеансы). Может быть хорошая перекрестная ссылка: http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local

и еще одна ссылка связанный: http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/