Passport.authenticate() 使用 Promise 而不是自定义回调

2023-12-31

passport.authenticate(),我如何定义一个Promise而不是使用定制球背?

如何使用passport.authenticate()在这里引用:http://www.passportjs.org/docs/authenticate/ http://www.passportjs.org/docs/authenticate/

在此页面中,有一个部分定制球背:

如果内置选项不足以处理身份验证请求,则可以提供自定义回调以允许应用程序处理成功或失败。

app.get('/login', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.redirect('/login'); }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      return res.redirect('/users/' + user.username);
    });
  })(req, res, next);
});

The 自定义回调定义为:

function(err, user, info){...}

我想做的是替换这个自定义回调 with a Promise.

[Promise](resolve, reject)
.then(res => {
})
.catch(err => {
})

我怎样才能做到这一点?谢谢。


您可以使用es6-promiseify https://www.npmjs.com/package/es6-promisify包裹。它非常容易使用,这是一个例子:

const {promisify} = require("es6-promisify");

// Convert the stat function
const fs = require("fs");
const stat = promisify(fs.stat);

// Now usable as a promise!
stat("example.txt").then(function (stats) {
    console.log("Got stats", stats);
}).catch(function (err) {
    console.error("Yikes!", err);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Passport.authenticate() 使用 Promise 而不是自定义回调 的相关文章

随机推荐

  • Zend Framework 2 中服务中的实体管理器

    我为我的模块编写了自定义服务 该服务提供公共静态函数来验证给定的令牌 现在我想实现另一个公共静态函数来检查 Doctrine Entity 是否存在 对于这种情况 我需要服务中的对象管理器或服务定位器 class ApiService co
  • 将 .pdf 文件更改为 .png Mac OS 10.3 的 shell 脚本

    我想在 Mac OS 10 3 上制作一个脚本 将 pdf 转换为 png 我一直在环顾四周 但不确定是否可能 我一直在阅读有关 sips 命令的内容 但它似乎在 10 3 上不可用 或者至少在这个版本上不可用 我在终端输入 man sip
  • 当我们调整窗口大小时,Container 中的元素如何调整?

    下面是一个窗口的代码 当用户单击一个按钮时 该窗口会更改颜色 并在单击另一个按钮时更改标签的文本 它有两个按钮 一个用于保存按钮的面板 一个标签和一个用于图形的面板 概念解释 首先 我添加了label to the North的一部分fra
  • BigQuery - 创建外部表

    How use CREATE EXTERNAL TABLEBigQuery 中的 DDL 语句 另一个大数据仓库解决方案 如 SnowFlake 和 Hive Based Presto AWS Athena 都有它 而且它非常有用 更新 1
  • 使用 AJAX 提交 HTML 5 表单?

    我在使用 ajax 提交表单时遇到了一些麻烦 由于 HTML5 表单在输入标记中已经具有 必需 验证 因此不需要 javascript 验证检查 但是 正因为如此 我不知道如何使用 javascript jQUERY 在通过这些验证检查后提
  • 如何从Android应用程序安全地使用GCP服务帐户?

    我正在开发一个使用 Firebase 身份验证和 GCP Pubsub 的 Android 应用程序 Java 为了连接到 Pubsub 我当前使用存储在项目中 JSON 文件中的服务帐户密钥 但这在生产环境中似乎并不安全 因为它暴露了我的
  • Maatwebsite 导入在 ubuntu 中不起作用

    当我尝试在 Ubuntu 中的服务器上使用 Maatwebsite 3 1 版本导入 Excel 工作表时 出现此类错误 Error Maatwebsite Excel Exceptions NoTypeDetectedException
  • 节点 http 服务器每秒可以处理多少个请求而不需要对任何请求进行排队?

    有谁知道节点 http 服务器的基本单个实例每秒可以处理多少个请求 而无需排队任何请求 实际上 我需要编写一个nodejs应用程序 它应该能够在100毫秒内一致响应大约数千个传入请求 我正在尝试在 4 个 cpus 服务器中测试它并在集群模
  • 如何找到浏览器的代理设置?

    我正在为 Windows 编写一个命令行工具 它使用 libcurl 从互联网下载文件 显然 当用户位于代理服务器后面时 下载不起作用 因为需要配置代理 然而 我希望我的工具尽可能简单 并且不必给用户带来配置代理的负担 我的工具甚至没有配置
  • SELECT 类型查询是唯一可以嵌套的类型吗?

    是否可以将非选择查询 更新 插入 删除 嵌入到另一个查询中 类似于 选择内的插入 A single query select such and such from where insert into 基本答案 有CTEs 通用表表达式 ht
  • 如何从“workflow.Context”获取“context.Context”?

    我正在实现一个 Cadence 工作流程 需要使用以下命令调用函数context Context参数 我该如何获得context Context来自workflow Context 难道这只是一个问题ctx context Context
  • Unity HoloLens 应用程序作为 Windows 应用程序而不是 AR 执行

    我正在使用以下工具构建 HoloLens Unity 应用程序 统一 2018 3 14f1 视觉工作室 2017 Microsoft MixedReality Toolkit Unity Foundation v2 0 0 RC1 Ref
  • 动态表单上的 MVC 模型验证?

    我有以下模型 public class FileModel public int Id get set Required ErrorMessage Required StringLength 100 ErrorMessage Max is
  • 在 Android 中添加自定义字体到主题

    有没有办法在 Android 的主题中添加自定义字体 我读过了快速提示 自定义 Android 字体 http mobile tutsplus com tutorials android customize android fonts 但这
  • Uint8Array 到 ArrayBuffer

    所以我有一个 ArrayBuffer 它是我用新的 HTML5 文件阅读器作为 ArrayBuffer 读取的文件的文件内容 并且我可以通过执行以下操作将 ArrayBuffer 转换为 Uint8Array ab established
  • MVC Core2 中的 Ajax 调用错误请求

    我正在将一个网站折射到 MVC Core 2 对于我的大多数 Ajax 调用 我一直使用 Get 速记 没有任何问题 我有一个 AJAX 调用需要使用 ajax 并且由于某种原因我不断收到错误的请求错误 请记住 此代码当前正在 aspx 网
  • 如何更改列表视图文本颜色

    在我的应用程序中 我想更改列表视图文本颜色 在本例中 我使用 XML 文件进行列表视图 是否可以 如果是 请举例说明 性别 xml
  • C 中变量名后的冒号[重复]

    这个问题在这里已经有答案了 可能的重复 结构体声明中的冒号是什么意思 例如 1 7 16 或 32 https stackoverflow com questions 1604968 what does a colon in a struc
  • 如何在 Kotlin Flow 中过滤列表

    我正在使用替换当前的实现RxJava to Coroutines and Flow 我在使用一些时遇到一些问题Flow运营商 我正在尝试过滤 a 中的项目列表Flow在提供收集之前 Flow
  • Passport.authenticate() 使用 Promise 而不是自定义回调

    passport authenticate 我如何定义一个Promise而不是使用定制球背 如何使用passport authenticate 在这里引用 http www passportjs org docs authenticate