nodejs маркер проверки подлинности паспорта
Я пишу приложение nodejs, которое я хотел бы использовать как веб-приложение, так и поставщик API. После аутентификации пользователя я хочу назначить этому пользователю токен, который будет использоваться для последующих запросов. Это отлично работает с паспортом для веб-приложения, так как я просто сериализую и десериализую пользователя с помощью токена в сеансе. Однако при ответе на запросы API, нет куки, чтобы установить для хранения информации о сеансе. В идеале паспорт будет искать маркер в сессии и тела. Есть ли способ настроить passport для этого?
2 ответа:
просто используйте маркер доступа на каждый запрос. Использование сеанса не требуется. Ниже приведен рабочий процесс:
POST /signin
- имя пользователя и пароль, размещенные в запросе клиента.
- сервер аутентифицирует пользователя с помощью локальной стратегии passport. Смотрите паспорт-местные.
- если учетные данные представляют действительного пользователя, сервер возвращает маркер доступа, созданный каким-либо генератором. node-jwt-simple is хороший выбор.
- если учетные данные недействительны, перенаправить на
/signin
.когда клиент получает маркер доступа от сервера авторизации, он может выполнять запросы к защищенным ресурсам на сервере. Например:
GET /api/v1/somefunction?token='abcedf'
- клиент вызывает некоторый серверный api с аргументом маркера.
- сервер аутентифицирует маркер с помощью стратегии предъявителя паспорта. Видеть паспорт-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/