一尘不染

nodejs护照认证令牌

node.js

我正在编写一个想同时用作Web应用程序和API提供程序的nodejs应用程序。验证用户身份后,我想为该用户分配一个令牌,以用于后续请求。这对于Web应用程序的通行证非常有用,因为我只是在会话中使用令牌对用户进行序列化和反序列化。但是,在响应API请求时,没有用于设置存储会话信息的cookie。理想情况下,护照将在会话和请求正文中都寻找令牌。有什么方法可以配置通行证来完成此任务吗?


阅读 224

收藏
2020-07-07

共1个答案

一尘不染

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

POST /signin
  1. 用户名和密码发布在客户端请求中。
  2. 服务器通过使用护照的本地策略对用户进行身份验证。请参阅本地护照
  3. 如果凭据表示有效用户,则服务器返回由某些生成器生成的访问令牌。node-jwt-simple是一个不错的选择。
  4. 如果凭据无效,请重定向到/signin

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

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

  1. 客户端使用token参数调用某些服务器api。
  2. 服务器使用护照的承载策略对令牌进行身份验证。请参阅passport-http-bearer
2020-07-07