我在我的Next.js项目中使用NextAuth,我面临的问题是NextAuth总是返回200状态码并将会话状态更新为已验证,即使密码或用户名不匹配。我试过抛出简单的错误,但没有一个对我有用。
以下是我发送的登录请求:
signIn("credentials", {
email: values.email,
password: values.password,
redirect: false,
}).then((res) => {
console.log(res);
if (res.status === 200) {
toast.update(toastId, {
render: "Login Success 🎉",
type: "success",
isLoading: false,
autoClose: 2000,
draggable: true,
position: "top-right",
closeButton: true,
});
}
});
下面是我使用的回调代码:
pages: {
signIn: "/login",
},
callbacks: {
async jwt({ token, user }) {
if (user) {
token.accessToken = user.token;
token.role = user.role;
}
return token;
},
async session({ session, token }) {
if (token) {
session.accessToken = token.accessToken;
session.role = token.role;
return session;
}
},
},
1条答案
按热度按时间eblbsuwk1#
我有同样的问题,你与应用程序路由器:
首先:不要将nextAuth与应用程序路由器一起使用...有很多问题;)
我建议你使用pages目录这个仓库有一个很好的例子https://github.com/steven-tey/dub
如果你想的话,你可以用app router编写你所有的应用程序,但是我建议你使用page目录来编写你的API:D