javascript - Passport-js 如何创建自定义策略

标签 javascript node.js authentication oauth-2.0 passport.js

我希望制定自己的策略。

我有 client_idclient_secret 和相关的元数据。我也知道执行流程。所以我想创建自己的策略并添加我的自定义逻辑以进行身份​​验证。

我看了passport-strategy ,但我不明白如何实现我自己的策略。谁能解释一下?

最佳答案

这里有两个选择:

如果您有自定义的身份验证逻辑,您实际上不需要创建自己的策略...您可以使用 passport-custom策略允许您构建此逻辑。根据文档:

The custom authentication strategy authenticates users by custom logic of your choosing

除非您想实际构建一个您想要分发的策略(例如:OpenID 的实现或类似的东西),否则我认为实现您自己的策略没有意义。

但是,实现您自己的策略包括实现 Passport 策略抽象类。我建议查看 Github页面而不是 npm 页面,因为它包含有关如何启动和运行的更多信息。基本上,拥有自己的策略要遵循的步骤是:

  1. 子类策略
  2. 通过在原型(prototype)上定义 authenticate() 方法来实现身份验证(在这里您将拥有您的自定义逻辑)。
  3. 调用一种增强方法(.success、.fail、.pass、.redirect 或 .error)

最后,您需要将它打包为一个 npm 模块,一旦您准备好一切,您就可以在您的 Node.js 项目中使用您自己的策略。

正如我所说,我认为您需要有充分的理由来制定自己的策略。我会尝试 passport-custom .

关于javascript - Passport-js 如何创建自定义策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277756/

相关文章:

javascript - 拆分列表的 jQuery 函数

javascript - 从服务器接收 json 数据以显示 Chart.js 图表不起作用

mysql - Nodejs Passport 设置困惑

java - 如何将身份验证 header 添加到WebService stub ?

javascript - React - 如何在父状态组件更改时强制子组件重新渲染?

javascript - RoundRobin 功能方法 - 为什么我的功能有副作用?

node.js - 无法通过 Koa 和 koa-body HTTPS POST 1.5 mb 的 json 对象。仅状态 413 生产

javascript - 通过 Express/Node.js 中的重定向将错误消息传递给模板

c# - 在 Linux 上将客户端证书添加到 POST 到 Kestrel REST API 的 .NET Core 无法通过服务器证书验证

.htaccess - 基本身份验证在 apache 2.4 中不起作用