我正在使用NextJS 13 + Auth 0构建一个新的应用程序。NextJs版本是13.4.19
,而auth 0 lib版本是3.1.0
。我正在使用服务器组件。文件是\app\api\auth\[auth0]\route.ts
我有一个自定义的回调处理程序
const afterCallback = async (req: NextRequest, session: Session, state: { [key: string]: any }) => {
if (session.user.email_verified) {
console.log('email verified..continuing')
return session;
} else {
// redirect('http://localhost:3000/verify-email', RedirectType.replace);
// return NextResponse.redirect(new URL('http://localhost:3000/verify-email'))
headers.set('location', '/verify-email');
}
console.log('printing after redirect')
return session;
};
字符串
我的authHandlers
export const GET = handleAuth({
callback: async (req: any, res: any) => {
try {
console.log('callback method called')
return await handleCallback(req, res, {
afterCallback,
// redirectUri: 'http://localhost:3000/dashboard'
});
} catch (error) {
console.error(error);
}
},
login: async (req: NextApiRequest, res: NextApiResponse) => {
console.log('login method called')
return await handleLogin(req, res, {
// authorizationParams: {
// redirect_uri: 'http://localhost:3000/api/auth/callback',
// },
returnTo: `/dashboard`,
});
},
型
我不知道如何重定向用户到/verify-email
页面时,用户的电子邮件没有验证。
我尝试了不同的选项,但没有运气.使用redirect
抛出一个错误,按照文档.-https://nextjs.org/docs/app/api-reference/functions/redirect在文档中还有另一个例子使用headers.set('location', '/verify-email');
然而,这也不工作,因为头是只读的.我得到下面的错误CAUSE: next_headers__WEBPACK_IMPORTED_MODULE_1__.headers.set is not a function
有没有人知道我如何可以推动用户/verify-email
页的情况下,电子邮件是未经验证的. TIA
1条答案
按热度按时间yjghlzjz1#
参见文档:https://github.com/auth0/nextjs-auth0/blob/26b54f3/src/handlers/callback.ts#L74C4-L74C4
字符串