首页 > 解决方案 > Heroku 上的 Node.js Web 应用程序的 Auth0 登录失败(但在 localhost 上成功)

问题描述

我在 Heroku(Node.js、Express、ClearDB、Auth0)上部署了我的 Web 应用程序。在使用 Auth0 登录方面,它可以在 localhost 上工作,但不能在线上。

因此,我假设我的应用仅在联机时无法从 Auth 租户服务器获取 tokenID。当我在线运行应用程序时,我使用以下代码并通过 console.log('!user') 获取“!user”(在 localhost 成功重定向到 /users/)

// Perform the final stage of authentication and redirect to previously requested URL or '/user'
router.get('/callback', function (req, res, next) {
  passport.authenticate('auth0', function (err, user, info) {
    if (err) { console.log("err1"); return next(err); }
    if (!user) { console.log("!user"); return res.redirect('/login'); }
    req.logIn(user, function (err) {
      if (err) {console.log("err2"); return next(err);c}
      const returnTo = req.session.returnTo;
      delete req.session.returnTo;
      res.redirect(returnTo || '/user');
    });
  })(req, res, next);
});

谁能告诉我如何处理这个问题。提前致谢。*这是我关于堆栈溢出的第一篇文章,我非常初学者,所以如果您需要更多信息,请告诉我,我不确定这篇文章是否足够。

Heroku 日志:

2020-07-03T16:42:56.343864+00:00 heroku[路由器]: at=info method=GET path="/callback?code=lvDWBEwvEBFg9tSX&state=YbB6XzW0tVqscx1uX8mVslj3" host=bmw6.herokuapp.com request_id=dfa50285-d359-49f3 -a046-b524d14a1a4c fwd="126.208.165.39" dyno=web.1 连接=0ms 服务=9ms 状态=302 字节=249 协议=https

2020-07-03T16:42:56.337770+00:00 应用 [web.1]: !user

2020-07-03T16:42:56.550263+00:00 heroku[路由器]: at=info method=GET path="/login" host=bmw6.herokuapp.com request_id=6dd3b3a8-5bb0-4f74-9c67-75e6f1c3a784 fwd= “126.208.165.39” dyno=web.1 连接=0ms 服务=2ms 状态=302 字节=402 协议=https

来自 Chrome 的控制台日志:

导航到https://small-darkness-1722.us.auth0.com/login? ...

端点上不允许使用以下参数/authorize:[is_submitting,sso] VM5 lock.min.js:9

导航到https://small-darkness-1722.us.auth0.com/login? ...

标签: node.jsexpressherokuauth0cleardb

解决方案


推荐阅读