更多关于实现基于 token 的身份验证系统的一些建议的一般性缺陷问题,其动机是 Node.js 似乎没有现成的东西。
由于我们想要构建一个无状态的 API 服务器来操作我们的数据存储,我们希望为我们的用户提供一个授权 token (“乘车票”),该 token 将包含在对 API 的每次调用中。
问题是如何以安全的方式生成此 token 。
[想法 1] - 用户通过向服务器发送 (user-id,password-hash) 来请求身份验证 token - 服务器响应 (user_id,expiry_date) ,由 API 服务器随 secret 钥签名 - 服务器可以在每次请求时检查 token 的有效性 - 服务器需要在有限的时间内存储 token
[想法 2] - 同上但避免发送密码散列 - 用户请求授权 token - 服务器向用户发送挑战,然后用户使用他的 (user_id,password_hash) 对对挑战进行哈希处理 - 服务器对此进行验证,然后根据想法 1 生成 token 。
[想法 3] - 使用密码哈希本身作为身份验证 token ,在每个请求中发送,以避免 token 管理问题 - 更简单但没有时间限制
[想法 4] - 与 2 相同,但 challenged_hashed_by_(user_id,password_hash) 成为 token 并在每个请求中发送
感谢指点
最佳答案
你看过 oauth 2.0 了吗:http://hueniverse.com/2010/05/introducing-oauth-2-0/
还有相当多的图书馆a可以为你处理
关于node.js - 基于 token 的身份验证(在 Node.js 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836594/