将自定义查询参数添加到护照auth0策略验证请求

时间:2018-02-22 00:35:39

标签: node.js passport.js auth0

我使用passport.js和auth0策略来授权用户

我还使用了auth0的托管登录页面,该页面支持customQueryParam这样的查询参数

ex:https://cool-startup.auth0.com/login?client=some_client_ID&...bunch of params...&customQueryParam=true

您可以使用customQueryParam来控制auth0托管登录页面并显示Flash消息和内容,方便

这是我的问题

在我的auth0中间件运行之后,我已经确定我需要将用户重定向到带有自定义参数的auth0登录页面,我应该如何在使用passport.js /可能的情况下实现这一点?

我在这里查看源代码 https://github.com/auth0/passport-auth0/blob/master/lib/index.js 它继承自https://github.com/jaredhanson/passport-oauth2/blob/9ddff909a992c3428781b7b2957ce1a97a924367/lib/strategy.js

我有点难过

这里是我发现我有错误的地方,我需要使用网址中的自定义参数将用户重定向回auth0

app.get('/auth/callback', (req, res, next) => {
  passport.authenticate('auth0', 
  {},
  (err, user) => {
    if (err) {
      // run passport.authenticate('auth0', 
      // again, but add custom query param 
    }
    return res.redirect('/');
  })(req, res, next);
});

非常感谢任何帮助/感谢阅读

1 个答案:

答案 0 :(得分:3)

您可以像在此处一样自行构建/authorize网址并手动重定向:https://github.com/auth0-samples/auth0-regular-webapp-login-with-sso-and-api/blob/master/utils/authorize.js

由于URL在您的控件中,您可以添加任何查询参数(尽管向登录页面发送非标准查询参数通常是不鼓励的)。