基于令牌的authentication(在Node.js中)
更多关于一些关于实现基于令牌的authentication系统的build议的一般缺点问题,由于Node.js似乎并没有做好准备。
由于我们要构build一个无状态的API服务器来操作我们的数据存储,我们希望为用户提供一个授权令牌(一个“乘车票”),这个令牌将包含在API的每次调用中。
问题是如何以安全的方式生成这个令牌。
[idea 1] – 用户通过发送(user-id,password-hash)到服务器来请求auth令牌 – 服务器响应(user_id,expiry_date),由API服务器签名随机Key – 服务器可以检查每个token的有效性请求 – 服务器将需要在有限的时间内存储令牌
[思想2] – 同上,但避免发送密码哈希 – 用户请求身份validation令牌 – 服务器发送用户挑战,用户然后用他(user_id,password_hash)对哈希挑战 – 服务器validation这一点,然后生成令牌按照想法1。
[思路3] – 使用密码哈希本身作为authentication令牌,在每个请求中发送,以避免令牌pipe理问题 – 更简单但没有时间限制
[思路4] – 与2相同,但challenged_hashed_by_(user_id,password_hash)成为令牌并在每个请求中发送
感谢任何指针
你有没有看oauth 2.0: http : //hueniverse.com/2010/05/introducing-oauth-2-0/
也有相当多的图书馆可以为你处理
您可以使用Passport使用OAuth 2.0。 护照本身就是一个很好的例子,如何使用它,这是一个适当的解决scheme,保护无国籍的API,而无需在每个请求上发送用户密码。
- 一个好的npm模块散列和腌制用户login/ passwd?
- 成功login后,Azureauthentication返回到login页面 – node.js
- SailsJS + PassportJS(sails-generate-auth) – 无法login用户
- 在Nodejs中使用Google API进行服务validation
- 分离的客户端和服务器的身份验
- SPA和SSO中无状态身份validation的性能(单点login)
- node.jsauthenticationphp auth_user
- “错误:非法参数:string,未定义”,并在节点JS中停止服务器
- 在进行api调用时,Docusign遗留标头错误