6

更多关于实施基于令牌的身份验证系统的一些建议的一般性指出缺陷问题,其动机是 Node.js 似乎没有现成的东西。

由于我们想要构建一个无状态的 API 服务器来操作我们的数据存储,我们想要为我们的用户提供一个身份验证令牌(“乘车票”),它将包含在对 API 的每次调用中。

问题是如何以安全的方式生成这个令牌。

[idea 1] - 用户通过发送 (user-id,password-hash) 到服务器请求身份验证令牌 - 服务器响应 (user_id,expiry_date) ,由 API 服务器随机签名 - 服务器可以检查每个令牌的有效性请求 - 服务器需要在有限的时间内存储令牌

[想法 2] - 与上述相同,但避免发送密码哈希 - 用户请求身份验证令牌 - 服务器向用户发送质询,然后用户使用他的 (user_id,password_hash) 对对质询进行哈希处理 - 服务器对此进行验证,然后生成令牌按照想法1。

[idea 3] - 使用密码哈希本身作为身份验证令牌,在每个请求中发送,以避免令牌管理问题 - 更简单但没有时间限制

[idea 4] - 与 2 相同,但 challenged_hashed_by_(user_id,password_hash) 成为令牌并在每个请求中发送

感谢您的任何指点

4

2 回答 2

0

你看过 oauth 2.0:http ://hueniverse.com/2010/05/introducing-oauth-2-0/

还有很多图书馆可以为您处理

于 2013-01-11T12:19:20.050 回答
0

您可以将 OAuth 2.0 与 Passport 一起使用。Passport 本身有一个很好的例子来说明如何使用它,它是保护无状态 API 的适当解决方案,无需在每个请求上发送用户密码。

于 2014-11-04T14:11:14.017 回答