Библиотека без аутентификации в 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/.
Отвечает ли это на вопрос или есть что-то еще, что вы хотите сделать?