我正在编写一个nodejs应用程序,我想将它用作Web应用程序以及API提供程序。一旦用户通过身份验证,我想为该用户分配一个令牌用于后续请求。这对Web应用程序的通行证非常有效,因为我只是使用会话中的令牌对用户进行序列化和反序列化。但是,在响应API请求时,没有设置用于存储会话信息的Cookie。理想情况下,护照会在会话和请求主体中查找令牌。有什么办法可以配置护照来完成这个任务吗?nodejs护照身份验证令牌
65
A
回答
124
只需在每个请求上使用访问令牌。不需要使用会话。以下是工作流程:
POST /signin
- 的用户名和密码张贴在客户端请求。
- 服务器通过使用护照的本地策略对用户进行身份验证。见passport-local。
- 如果凭证代表有效用户,则服务器将返回由某个生成器生成的访问令牌。 node-jwt-simple是个不错的选择。
- 如果凭据无效,请重定向到
/signin
。
当客户端从授权服务器接收到访问令牌时,它可以向服务器上的受保护资源发出请求。例如:
GET /api/v1/somefunction?token='abcedf'
- 客户端调用与令牌参数一些服务器API。
- 服务器通过使用护照的载体策略来验证令牌。见passport-http-bearer。
参考
Make a secure oauth API with passport.js and express.js (node.js)
7
由于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/
相关问题
- 1. 护照身份验证
- 2. 护照RESTAPI身份验证
- 3. Laravel 5.4 mongodb护照访问令牌未经身份验证
- 4. 保护基于令牌的身份验证系统的令牌
- 5. CherryPy身份验证令牌
- 6. Facebook身份验证令牌
- 7. 身份验证令牌
- 8. 与身份验证令牌
- 9. Node.JS验证Google身份验证令牌
- 10. Owin身份令牌身份验证令牌端点响应404
- 11. 使用Facebook策略的护照NodeJS身份验证
- 12. NodeJS护照未知身份验证策略
- 13. 身份验证静态路径,表达的NodeJS护照HTML
- 14. NodeJS + Redis + Express +护照Facebook身份验证失败
- 15. 护照身份验证不会通过
- 16. 护照身份验证 - 任何?
- 17. 护照(本地)挂在身份验证
- 18. (AngularJS +护照)用户身份验证
- 19. 护照JWT&授权与身份验证
- 20. Facebook身份验证令牌未能创建Firebase身份验证
- 21. 没有护照的Node.js身份验证:是json web令牌可靠吗?
- 22. Nodejs - 是否需要解码身份验证令牌?
- 23. nodejs身份验证令牌链接到安全页面
- 24. 在客户端保护ASP.NET窗体身份验证令牌?
- 25. php身份验证令牌+ ios
- 26. REST API中的身份验证令牌
- 27. Google Plus身份验证 - Ajax令牌
- 28. Azure Web API的身份验证令牌
- 29. 验证访问令牌 - Asp.Net身份
- 30. 无效Accountmanager身份验证令牌
谢谢SOOOOO多本。出于某种原因,我认为OAuth需要比这更复杂。 – SomethingOn
很好的解释 – Omar
关于令牌生成,有一个永不过期的令牌是安全的吗?我必须让令牌过期并生成新的吗? – sanfilippopablo