【发布时间】:2021-12-04 21:51:06
【问题描述】:
我目前正在使用 auth0 对 Next.js 应用程序中的用户进行身份验证。
我正在使用@auth0/nextjs-auth0 SDK 并遵循文档。
但是,我无法弄清楚如何根据用户访问登录表单的页面在登录后动态重定向用户。
在我目前正在尝试构建的应用程序中,用户可以从主页“/”和“/browse”中的导航栏元素登录。但是,登录后,它总是重定向回“/”,而我想将用户重定向到“/browse”或“/browse/[id],如果他们从那里开始登录过程。
我尝试使用https://community.auth0.com/t/redirecting-to-another-page-other-than-using-nextjs-auth0/66920 作为指导,但这种方法只允许我重定向到预定义的路线。我想知道如何使重定向 URL 动态化。
提前致谢!
编辑:我现在通过深入研究 req 对象并将 returnTo 值设置为“referer”设法找到了解决方案。
import { handleAuth, handleLogin } from '@auth0/nextjs-auth0';
const getLoginState = (req, loginOptions) => {
return {
returnTo: req.headers.referer
};
};
export default handleAuth({
async login(req, res) {
try {
await handleLogin(req, res, { getLoginState });
} catch (err) {
res.status(err.status ?? 500).end(err.message)
}
}
});
到目前为止,我没有看到任何明显的问题,但我不完全确定这种方法是否有任何缺点,所以我希望得到任何反馈。
【问题讨论】: