Библиотека без аутентификации в NodeJS

Я считаю, что наилучшая практика для RESTful API - быть без гражданства. Я читаю abit об аутентификации без гражданства, но я не совсем понимаю, как его реализовать (выглядит как беспорядок токенов и т.д.). PassportJS - хорошая библиотека проверки подлинности, но ее не без гражданства? Есть ли какая-то библиотека, которая помогает мне создавать API без состояния (с проверкой подлинности)? Я хочу использовать SSO (один знак), например Google, Twitter и т.д., Поэтому будет хорошо, если библиотека обрабатывает это для меня (например, PassportJS).

Ответы

Ответ 1

В настоящее время я разрабатываю REST API и использую PassportJS Basic Auth (для целей dev) без сеансов. Вы можете сказать, что стратегия не использует сеансы:

passport.authenticate( 'basic', { 'session' : false } )
passport.authenticate( 'bearer', { 'session' : false } )
passport.authenticate( 'token', { 'session' : false } )

Посмотрите здесь внизу.

Ответ 2

@fakewaffle является правильным. Вы можете сделать паспорт без гражданства, установив сеанс в значение false.

Я разработал сервер Oauth2 с использованием oauth2rize. https://github.com/jaredhanson/oauth2orize/. Я использую его, чтобы предоставить токены доступа клиенту, которые затем отправляются с каждым запросом в заголовок authorization. Эти жетоны хранятся в базе данных и поэтому являются апатридами.

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

Passport.js предоставляет несколько поставщиков аутентификации, которые могут использоваться для аутентификации через сторонних поставщиков, таких как facebook, твиттер и т.д. Вот ссылка на провайдер auth.com http://passportjs.org/guide/facebook/.

Отвечает ли это на вопрос или есть что-то еще, что вы хотите сделать?