使用 Passport js failureRedirect 方法发回数据

2023-11-30

我有一个 Passport js 本地注册策略,它使用 successRedirect 和 failureRedirect 方法。问题是,如果注册过程出现错误,Passport 只会重定向回注册表单,表单中没有任何数据。

app.post('/signup', passport.authenticate('local-signup', {
        successRedirect: '/signup/avatar', // redirect to the secure profile section
        failureRedirect: '/signup', // redirect back to the signup page if there is an error
        failureFlash: true // allow flash messages
    }));

我的本地注册策略中有以下条件,如果提供的两个密码不匹配,则会向用户发送失败消息。

if(req.body.password != req.body.confirm_password){
                                console.log('Passwords do not match');
                                return done(null, false, req.flash('signupMessage', 'Your passwords do not match'));
                            }

除了闪现消息之外,我还想将数据发送回 /signup 路由,并使用用户提供的数据重新填充表单。

有没有办法在失败时将表单数据发送回浏览器?


答案比我想象的要简单得多。

验证应该在数据发送到 Passport js 之前进行,然后如果数据无效,可以重新渲染 /signup 模板并将数据传回。

解决方案是在这个问题中:带护照的 NodeJS 快速验证器

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

使用 Passport js failureRedirect 方法发回数据 的相关文章

  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何在查询语句之外从mysql查询中获取值?

    这是下面的函数console log function quo value value connection query SELECT role from roles where id 1 function error results fi
  • 对于实时网站使用 Node.js 或 Ringojs 安全吗?

    正如标题中所述 我想知道使用实际的 omg 平台 即 Node js 和 Ringo js 的实际版本 之一来开发网站是否安全 另外 我想知道他们是否支持cookie sessions以及他们如何处理多字段帖子 PHP中的fieldname
  • Node.js http get 请求错误事件未拾取 404 或 403

    我正在对图像发出 HTTP GET 请求 有时图像会以 404 或 403 的形式返回 令我惊讶的是 我必须明确检查这一点 而不是在错误事件中选择它 这是它的工作原理还是我在这里遗漏了一些东西 function processRequest
  • 如何解决 Socket.io 404(未找到)错误?

    我正在使用 Socket io 和 Express 在我的项目中 我有一个登录页面和一个主页 当我成功登录时 我导航到 localhost 3000 home 并收到以下错误 GET http localhost 3000 socket i
  • 由于 Chrome 修订,Firebase puppeteer PDF 功能超时

    我有一个 Firebase 函数来创建 PDF 文件 最近 由于 Chrome 修订版 而超时 我既不明白错误消息 也不明白出了什么问题 当我在 MacOS 下将其本地部署时 该功能有效 TimeoutError Timed out aft
  • 如何将 emscripten 浏览器输入法从 window.prompt 更改为更合理的输入法?

    我有一个 C 函数 一旦调用它就会消耗来自 stdin 的输入 使用 emscripten 将此函数导出到 javascript 会导致调用 window prompt 与浏览器提示交互确实是一项乏味的任务 首先 您一次只能粘贴一行 其次
  • editMessageReplyMarkup 方法删除内联键盘

    我正在使用 node js 制作一个电报机器人node telegram bot api图书馆 我回答callback query并想更换我的内联键盘 下面的代码显示了我如何尝试使用此方法 但是当我在电报中点击键盘时 它就消失了 bot o
  • NestJS e2e 测试模拟会话装饰器

    我正在尝试使用 supertest 编写一个 e2e 测试 其中我的控制器实际上使用了 Session 装饰师 然而 我不想承担使用数据库连接等启动会话的全部负担 因此测试中的我的应用程序实际上并未初始化会话 相反 我想首先模拟掉装饰器提供
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • 找不到“节点”的类型定义文件

    更新 Angular Webpack 和 TypeScript 后出现奇怪的错误 知道我可能会错过什么吗 当我使用 npm start 运行应用程序时 出现以下错误 at loader Cannot find type definition
  • 下载中带有文件名的 NodeJS sendFile

    我尝试使用以下代码将文件发送给客户端 router get get myfile function req res next res sendFile other file name dat 它工作正常 但当用户从以下网址下载此文件时我需要
  • Node.js 和 Passport 对象没有 validPassword 方法

    我正在使用 Node js Express Passport 创建一个简单的身份验证 本地 到目前为止我所达到的效果是 当输入错误的用户名或密码时 用户将被重定向到错误页面 但是当用户输入正确的用户名和密码时 我收到此错误 node mod
  • 使用 KeystoneJs 的 Mongoose 二级种群 [重复]

    这个问题在这里已经有答案了 我需要用 Mongoose Keystone 填充两层 但遇到了障碍 我有 3 个模型 地区 国家和城市 地区包含国家 国家包含城市 我的模型 型号区域 var Region new keystone List
  • 如何使用对象数组创建猫鼬模式

    我有这个 json data id 1 name Sample test description this is a sample test category tests points 100 startDate 2018 02 15 00
  • 具有 Firebase (FCM) 推送通知的 Node js

    我正在使用 Node js 开发 REST api 并且有一个休息端点来发送 firebase 推送通知 我的代码如下 const bodyParser require body parser var cors require cors v
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 如何使用 Passport 验证 Supertest 请求?

    我使用 Passport js 进行身份验证 本地策略 并使用 Mocha 和 Supertest 进行测试 如何使用 Supertest 创建会话并发出经过身份验证的请求 正如 zeMirco 指出的那样 底层superagent模块支持

随机推荐