NodeJS中的无状态认证库

Jie*_*eng 14 authentication stateless single-sign-on node.js passport.js

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

fak*_*fle 24

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

passport.authenticate( 'basic', { 'session' : false } )
passport.authenticate( 'bearer', { 'session' : false } )
passport.authenticate( 'token', { 'session' : false } )
Run Code Online (Sandbox Code Playgroud)

这里的底部.

  • 我对此很陌生.如果我希望用户通过第三方进行身份验证,例如Google,GitHub等,我相信也使用OAuth 2,我该如何配置?提供商(谷歌,Facebook,Twitter)如何与API(基本,OAuth,OAuth 2)相关? (2认同)

Roh*_*anJ 6

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

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

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

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

这是回答问题还是还有其他想做的事情?