NodeJS中的无状态认证库

时间:2013-08-11 03:15:11

标签: node.js authentication single-sign-on stateless passport.js

我认为RESTful API的最佳实践是无状态。我读过关于无状态身份验证的abit,但我不完全清楚如何实现它(看起来像一堆令牌等)。 PassportJS是一个很好的身份验证库,但它不是无状态的?是否有某种库可以帮助我创建无状态API(带身份验证)?我会想要使用像Google,Twitter等一样的SSO(单点登录),所以如果图书馆为我处理这个(就像PassportJS那样)会很好。

2 个答案:

答案 0 :(得分:24)

我目前正在开发REST API并使用PassportJS Basic Auth(用于开发目的)而没有会话。您可以告诉策略不使用会话:

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

请参阅底部的here

答案 1 :(得分:6)

@fakewaffle是对的。您可以通过将会话设置为false来使护照无状态。

我使用oauth2rize开发了一个Oauth2服务器。 https://github.com/jaredhanson/oauth2orize/。 我使用它向客户端提供访问令牌,然后随authorization标头中的每个请求一起发送。这些令牌存储在数据库中,因此无状态。

您当然可以使用其他提供程序对用户进行身份验证并向客户端提供访问令牌。

Passport.js提供多种身份验证提供程序,可用于通过第三方提供程序(如facebook,twitter等)进行身份验证。 这是facebook auth provider http://passportjs.org/guide/facebook/的链接。

这是否回答了这个问题,或者您还想做其他事情?

相关问题