node.js - 如何在 node-oidc-provider 中重定向失败的登录尝试

标签 node.js express openid openid-connect

我正在使用 node.js、express.js 和 node-oidc-provider 设置 OpenID Connect 提供程序。我一直在研究 https://github.com/panva/node-oidc-provider-example/tree/master/03-oidc-views-accounts 中的示例。 ,但它从不处理失败的身份验证。如果用户输入错误的密码,如何将用户重定向回登录页面?

expressApp.get('/interaction/:grant', async (req, res) => {
// The initial route hit by the client (Relying Party) that renders the login view if needed.
...
});

expressApp.post('/interaction/:grant/login', parse, (req, res, next) => {
        User.authenticate(req.body.email, req.body.password)
            .then((users) => {
             // returns an array of user objects that match the credentials
              if(!users.length)
              {
              // What now?  I can't just redirect back to /interaction/:grant - I get session not found

              }
      // the rest works well enough (for now)....
...
            }).catch(next);
      });

最佳答案

就像在任何 Express 应用程序中一样。这样想吧。仅成功解决交互,否则如果您希望退出交互并将控制权返回给客户端,则会出错。

我倾向于单独开发交互,并且只在完成后将它们插入 oidc-provider。

关于node.js - 如何在 node-oidc-provider 中重定向失败的登录尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54699216/

相关文章:

node.js - Node v0.8.5 REPL : Cannot find module when requiring npm installed module

node.js - Express JS - 重置 cookie 过期时间

node.js - MEAN js 如何处理身份验证?

security - 为什么将电子邮件地址用作OpenID会有危险?

java - 我们如何使用 Amazon cognito 作为其他应用程序(例如 google 或 facebook)的身份提供商

ruby-on-rails - 单元测试 OpenID 服务器

node.js - 将node.js代码封装在函数中

javascript - app.get 和 router.get 之间的区别(Express)

javascript - 在 expressjs 路由中使用 socket.io 而不是在主 server.js 文件中

javascript - 如何拦截 JSON Server 中的请求?