Next-Auth仅在登录时重定向

wbgh16ku  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(158)

我只想在登录()时使用重定向。我试过几种方法。

1.在[...nextauth].tsx中使用回调重定向

这种方法使我的应用程序在登录和注销时都会重定向。对于我的情况来说不是。

callbacks: {
    async redirect({ url, baseUrl }) {
      return "/account/loadingregister";
    },
  },

1.在组件中内联使用重定向。然而,这只适用于注销回调,我需要这项工作在登录回调。

<button onClick={() => signIn({ callbackUrl: "http://localhost:3000/abc" })}>
     Sign In
</button>

<button onClick={() => signOut({ callbackUrl: "http://localhost:3000/foo" })}>
     Sign Out
</button>

1.两者都使用。[...nextauth].tsx将是第一优先事项。内联重定向将被忽略。

那么,我如何才能只在登录功能中重定向?

wfsdck30

wfsdck301#

import { signOut } from "next-auth/react";

const logoutHandler = () => {
    signOut();
  };

<button onClick={logoutHandler}>
     Sign Out
</button>
2jcobegt

2jcobegt2#

最终,我找到了答案。登录后需要使用异步功能重定向到其他页面。

const handleSignIn = async () => {
    await signIn("google", {
      callbackUrl: "/",
    });
  };

//component:

<button onClick={() => handleSignIn()}>Sign In</button>

相关问题