node.js - 基于 token 的身份验证(在 Node.js 中)

标签 node.js authentication cryptography

更多关于实现基于 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/

相关文章:

node.js - 最常见的不同值 mongodb

node.js - 多行数组字面量

javascript - Uglify-js 抛出错误并发生解析错误

node.js - 在生产模式下,Electron应用无法通过Mac中的child_process.spawnSync API运行外部脚本,但在Linux中可以完美运行

android - 为什么我的登录屏幕不工作

java - Java 中用于身份验证的 TokenStorage

android - 在Kotlin中将ByteArray转换为PrivateKey

mongodb - 无法授权新创建的 MongoLabs 数据库

security - 最佳密码盐长度

java - 添加 PDF 撤销信息作为签名属性 pdfRevocationInfoArchival OID 1.2.840.113583.1.1.8