nodejs护照authentication令牌

我正在编写一个nodejs应用程序,我想用它作为一个web应用程序以及一个API提供程序。 一旦用户通过身份validation,我想为该用户分配一个令牌用于后续请求。 这对Web应用程序的护照很有效,因为我只是用会话中的令牌序列化和反序列化用户。 但是,在响应API请求时,不存在用于存储会话信息的Cookie。 理想情况下,护照会在会话和请求主体中查找令牌。 有什么办法来configuration护照来完成这个?

每个请求只需使用访问令牌。 使用会话是不需要的。 以下是工作stream程:

POST /signin 
  1. 用户名和密码在客户端请求中发布。
  2. 服务器使用护照的“本地策略”对用户进行身份validation。 见护照本地 。
  3. 如果凭证代表有效的用户,则服务器将返回由某个生成器生成的访问令牌。 node-jwt-simple是个不错的select。
  4. 如果凭证无效,请redirect到/signin

当客户端从授权服务器接收到访问令牌时,可以向服务器上的受保护资源发出请求。 例如:

GET /api/v1/somefunction?token='abcedf'

  1. 客户端使用token参数调用一些服务器API。
  2. 服务器通过使用护照的载体策略来validation令牌。 见护照-http持票人 。

参考

使用passport.js和express.js(node.js)创build安全的oauth API

正如bnuhero提到你不需要会话(虽然这种方法也有其优点)。 这是我开始的锅炉板项目: https : //github.com/roblevintennis/passport-api-tokens

这里有一个替代scheme,容易遵循tut(但它使用会话)。 可能是一个很好的交叉引用: http : //scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local

还有一个参考相关: http : //mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/