node.js - nodejs Passport 身份验证 token

标签 node.js authentication express passport.js

我正在编写一个 nodejs 应用程序,我想将它用作 Web 应用程序以及 API 提供程序。一旦用户通过身份验证,我想为该用户分配一个 token 以用于后续请求。这非常适用于 Web 应用程序的 Passport ,因为我只是在 session 中使用 token 序列化和反序列化用户。但是,在响应 API 请求时,没有设置 cookie 来存储 session 信息。理想情况下, Passport 会在 session 和请求正文中查找 token 。有没有办法配置 Passport 来完成这个?

最佳答案

只需在每个请求上使用访问 token 。不需要使用 session 。以下是工作流程:

POST /signin
  1. 用户名和密码发布在客户端请求中。
  2. 服务器使用 Passport 的本地策略对用户进行身份验证。见 passport-local .
  3. 如果凭据代表有效用户,则服务器返回某个生成器生成的访问 token 。 node-jwt-simple是个不错的选择。
  4. 如果凭据无效,请重定向到 /signin

当客户端从授权服务器接收到访问 token 时,它就可以向服务器上的 protected 资源发出请求。例如:

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

  1. 客户端使用 token 参数调用一些服务器 api。
  2. 服务器使用 Passport 的承载策略对 token 进行身份验证。见 passport-http-bearer .

引用文献

Make a secure oauth API with passport.js and express.js (node.js)

关于node.js - nodejs Passport 身份验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17397052/

相关文章:

node.js - 从 node.js session 获取信息与从数据库获取信息

遍历 map 时 JavaScript 堆内存不足?

performance - mongodb 插入时 Node 应用程序不工作

android - 从 Android 发送数据到 Asterisk Manager 界面

rest - REST认证方案的安全性

reactjs - Next.js-express 动态路由导致页面重新加载

javascript - 如何更改管理面板左侧菜单上 strapi 的 Logo ?

javascript - 在 Javascript 中通过 WebSocket 的 HashMap

使用 Novell.Directory.Ldap.NETStandard 库的 C# netcore ldap 身份验证

javascript - 获取 API 不通过 post 发送数据