繁体   English   中英

NEXT-AUTH 回调重定向仅在登录

[英]NEXT-AUTH callback redirect only in signin

我只想在 signIn() 时使用重定向。 我尝试了几种方法。

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

此方法使我的应用程序将在登录和注销时重定向。 不适合我的情况。

 callbacks: {
    async redirect({ url, baseUrl }) {
      return "/account/loadingregister";
    },
  },
  1. 在组件中内联使用重定向。 但是,这仅适用于 signOut 回调,我需要在登录回调中进行这项工作。
<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 将是第一优先级。 并且内联重定向将被忽略。

那么,我怎样才能在 function 中仅重定向登录?

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

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

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

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

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

//component:

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


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM