Heroku“ returnTo” querystring参数在使用Auth0登出时出错,>

问题描述 投票:0回答:2
我正在使用Heroku,并且已成功部署。注销确实让我很头疼。根据文档,我应该传递一个URL,例如>

https://xxxxauth0tennantxxxx/v2/logouthttps://YOUR_DOMAIN/v2/logout?returnTo=http%3A%2F%2Fwww.example.com

[当我这样做时,我会回来的。但我使用的是Auth0文档中的以下代码,该代码可构建包括端口号在内的网址。

router.get('/logout', (req, res) => { req.logOut(); let returnTo = req.protocol + '://' + req.hostname; const port = req.connection.localPort; if (port !== undefined && port !== 80 && port !== 443) { returnTo += ':' + port; } const logoutURL = new url.URL( util.format('https://%s/v2/logout', process.env.AUTH0_DOMAIN), ); const searchString = querystring.stringify({ client_id: process.env.AUTH0_CLIENT_ID, returnTo: returnTo, }); logoutURL.search = searchString; res.redirect(logoutURL); });

Heroku自动分配了一个端口,因此,因此每次我尝试注销时都会遇到The "returnTo" querystring parameter "http://xxxxx.herokuapp.com:12345" is not defined as a valid URL in "Allowed Logout URLs".错误

[我已经尝试添加所有可以允许的变体注销url,我可以尝试但是没有运气http://localhost:8000,http://*.herokuapp.com,https://*.auth0.com/v2/logout,https://*.auth0.com/,https://xxxxxxx.auth0.com,我什至尝试将app.set('trust proxy', 1);设置为某些文档对Heroku的建议。

请,如何在我的注销URL中说明heroku分配的动态端口?

编辑:我也尝试过此端点的变体

而且我尝试将端点呼叫编辑为

router.get('/logout', (req, res) => { let returnTo = req.protocol + '://' + req.hostname; const port = req.connection.localPort; if (port !== undefined && port !== 80 && port !== 443) { returnTo = process.env.NODE_ENV === 'production' ? `${returnTo}/` : `${returnTo}:${port}/`; } req.logout(); if (req.session) { req.session.destroy(function(err) { if (err) { console.log(err); } console.log('Destroyed the user session on Auth0 endpoint'); res.redirect(req.protocol + '://' + process.env.AUTH0_DOMAIN + '/v2/logout?client_id=' + process.env.AUTH0_CLIENT_ID + '&returnTo=' + returnTo +' '); }); } });

我正在使用Heroku,并且已成功部署。注销确实让我很头疼。根据文档,我应该传递一个网址,例如https:// xxxxauth0tennantxxxx / v2 / logout或https:// ...
node.js heroku port logout auth0
2个回答
0
投票
如错误消息所示,您需要在应用程序设置中将http://xxxxx.herokuapp.com:12345添加到允许的注销URL中。用heroku应用程序名称替换XXXXX,并同时包含端口号。

0
投票
最后,在构建url和voila时,我刚刚删除了端口,注销并重定向到主页。
© www.soinside.com 2019 - 2024. All rights reserved.