基于令牌的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,而无需在每个请求上发送用户密码。