Next.js - NextAuth总是返回一个肯定的状态码

drkbr07n  于 2023-01-20  发布在  其他
关注(0)|答案(1)|浏览(88)

我在我的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;
        }
    },
},
eblbsuwk

eblbsuwk1#

我有同样的问题,你与应用程序路由器:
首先:不要将nextAuth与应用程序路由器一起使用...有很多问题;)
我建议你使用pages目录这个仓库有一个很好的例子https://github.com/steven-tey/dub
如果你想的话,你可以用app router编写你所有的应用程序,但是我建议你使用page目录来编写你的API:D

相关问题