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

2023-12-21

我正在寻找制定自己的策略。

I have client_id, client_secret以及相关的元数据。我也知道执行流程。所以我想创建自己的策略并添加自定义逻辑进行身份验证。

我在看护照策略 https://www.npmjs.com/package/passport-strategy,但我不明白如何实施我自己的策略。谁能解释一下吗?


您在这里有两个选择:

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

自定义身份验证策略通过您选择的自定义逻辑对用户进行身份验证

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

然而,实现你自己的策略包括实现passport-strategy抽象类。我建议调查一下Github https://github.com/jaredhanson/passport-strategy页面而不是 npm 页面,因为它包含有关如何启动和运行的更多信息。基本上,制定自己的策略应遵循的步骤是:

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

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

正如我所说,我认为你需要有充分的理由来制定自己的策略。我会尝试一下护照定制 https://www.npmjs.com/package/passport-custom.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Passport-js 如何创建自定义策略 的相关文章

  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 如何按照编写的顺序迭代 javascript 对象属性

    我发现了代码中的一个错误 我希望通过最少的重构工作来解决该错误 此错误发生在 Chrome 和 Opera 浏览器中 问题 var obj 23 AA 12 BB iterating through obj s properties for
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • 如何检查请求是否通过 Express 中的 https 发送

    我想强制某些路线始终在我的 Express 应用程序中使用安全连接 我如何检查以确保它使用 https 我在 heroku 上使用搭载 ssl 进行部署 我也在 Heroku 上部署 当他们使用 nginx 进行反向代理时 他们添加了一堆标
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值
  • 没有 OAuth 的 Spring Security JWT

    最近我开始学习如何使用oauth 2 0 jwt配置spring boot 我有一个问题 是否可以使用spring boot security jwt避免oauth 2 0 是的 可以使用JWT无需使用标准化的功能OAuth 2 0 flo

随机推荐

  • 为什么 NSFetchRequest.shouldRefreshRefetchedObjects 不起作用?

    我正在尝试在一个上下文中更新并保存托管对象 然后在另一个上下文中访问更新的属性值 的文档shouldRefreshRefetchedObjects says https developer apple com documentation c
  • 如何设置热图纵横比

    我有一个单通道图像 其中每个整数像素值映射到一个字符串 例如 5 gt 人 我正在尝试创建一个交互式图像 将鼠标悬停在像素上将显示其相应的字符串 我认为使用绘图热图可能是做到这一点的方法 我遇到的问题是 真的很慢 如果我将 numpy 数组
  • Hibernate 多对多映射与附加列?

    我需要在许多生成的表中添加额外的列 有 2 个实体彼此之间存在多对多关联 用户多对多组 Entity public class User other fields private Set
  • ndb 一对多建模:重复 KeyProperty 与外键的优点

    我的问题是关于在 ndb 中建模一对多关系 我知道这可以通过 至少 两种不同的方式来完成 使用重复属性或使用 外键 我在下面创建了一个小例子 基本上我们有一篇文章可以有任意数量的标签 假设标签添加后可以删除但不能更改 我们还假设我们不担心交
  • 如何强制嵌套列表项与父列表项具有相同的宽度?

    我有一个水平家长列表 某些列表项在单击时会显示嵌套的垂直列表 如何强制垂直子列表中的项目与父列表项目的宽度相同 See jsFiddle http jsfiddle net BXnxc 1 HTML ul class mainMenu ho
  • 如何处理来自BackgroundWorker线程的异常?

    在 WPF 应用程序中 我有一个预定的数据库访问任务 由计时器定期运行 并且该任务已在 BackgroundWorker 线程中执行 当连接尝试失败时 我通过以下方式引发异常try catch构造 我想更新 UI 线程中的状态栏文本 是否有
  • C# 函数接受 Enum 项并返回枚举值(而不是索引)

    假设我有以下声明 public enum Complexity Low 0 Normal 1 Medium 2 High 3 public enum Priority Normal 1 Medium 2 High 3 Urgent 4 我想
  • 从 Firebase Web 应用程序发送邮件

    var express require express var app express var nodemailer require nodemailer var transporter nodemailer createTransport
  • Nestjs:如何构建nestjs应用程序并生成dist文件夹?

    我正在尝试编写 jenkins shell 脚本来部署 Nestjs 应用程序 我尝试 npm run start prod 这个生成 dist 文件夹 但它也提供我不需要它的应用程序 如何构建应用程序 你可以运行 npm run buil
  • x:Key="{x:Type TextBox}" 的作用是什么?

    一切都在标题中 我不止一次读过设置这样的样式 大致相当于 上次在对另一个问题的评论中 https stackoverflow com questions 4853272 how to set a comboboxs style inside
  • 从 CDATA 中检索值

    我正在使用 java JAXB 我想从中检索数据CDATA 所需输出 Need Help 任何人都可以帮助我吗 我尝试了几种解决方案 Thanks try this XmlAccessorType XmlAccessType FIELD p
  • 为什么类名不大写会导致编译器错误?

    这个 Groovy 脚本运行良好 println 0 class MyClass public MyClass int j public MyClass method return this 此操作因编译错误而失败 意外标记 公共位于行 5
  • Prolog 中发生检查的简单最坏情况是什么?

    许多论文确实指出 如下所示的方程统一问题可能会在指数时间内运行 当occurs check true 没有规定这是一个顶级查询或子句主体 它只是等式统一问题 X1 f X0 X0 X2 f X1 X1 Xn 1 f Xn 2 Xn 2 Xn
  • 图像分类 - 检测图像是否类似于卡通

    我有大量 JPEG 缩略图 尺寸从 120x90 到 320x240 不等 我想将它们分类为逼真或卡通 如何使用图像魔术师 http en wikipedia org wiki ImageMagick的实用程序 convert compar
  • Xcode 4.3.3 找不到任何头文件

    到目前为止 我已经设法让 Xcode 链接到我安装在 usr local lib 下的 Gnu Scientific Libraries GSL 并在 usr local include 下包含头文件 在 Build Phases gt L
  • 多播期间的行为变化[重复]

    这个问题在这里已经有答案了 下面是一个简单的声明 System out println int char byte 1 当我运行它时 我得到的输出为65535 我不知道原因 它 执行期间 byte 1返回 1 因此 int char byt
  • 具有三个条件的索引/匹配

    我搜索了又搜索 搜索了又搜索 我只能找到具有两个条件的索引 匹配的解决方案 有谁有具有三个标准的索引 匹配的解决方案吗 作为我的实际数据的示例 我想索引 匹配年份 类型和名称以查找月份列中的数据 您可以使用以下方式匹配无限数量的条件求和 找
  • 为什么我不能使用显式模板参数调用模板友元函数?

    考虑以下示例 struct S template
  • Rails Devise gem - 通过将默认用户模型拆分到其他模型来自定义默认用户模型

    我尝试过 devise Rails gem 并且想知道最好的方法是什么来分割它在多个模型中创建的用户模型属性 目前 我的用户模型如下所示 这是默认的设备行为 用户 id 整数 电子邮件 字符串 加密密码 字符串 密码盐 字符串 重置密码令牌
  • Passport-js 如何创建自定义策略

    我正在寻找制定自己的策略 I have client id client secret以及相关的元数据 我也知道执行流程 所以我想创建自己的策略并添加自定义逻辑进行身份验证 我在看护照策略 https www npmjs com packa