跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.
入门会话管理登录和注销

处理登录和注销

要登录用户,请确保您至少设置了一种身份验证方法。然后,您需要构建一个按钮,该按钮将调用您 Auth.js 框架包中的登录功能。

./components/auth/signin-button.tsx
import { signIn } from "@/auth.ts"
 
export function SignIn() {
  return (
    <form
      action={async () => {
        "use server"
        await signIn()
      }}
    >
      <button type="submit">Sign in</button>
    </form>
  )
}

您还可以向signIn函数传递一个提供商,该函数将尝试直接使用该提供商登录。否则,当在您的应用程序中点击此按钮时,用户将被重定向到配置的登录页面。如果您没有设置自定义登录页面,用户将被重定向到位于/[basePath]/signin的默认登录页面。

Default Sign-in Page

验证成功后,用户将被重定向回他们开始登录的页面。如果您希望用户在登录后被重定向到其他地方(例如/dashboard),您可以通过在登录选项中传递目标 URL 作为redirectTo来实现这一点。

app/components/signin-button.tsx
import { signIn } from "@/auth.ts"
 
export function SignIn() {
  return (
    <form
      action={async () => {
        "use server"
        await signIn("github", { redirectTo: "/dashboard" })
      }}
    >
      <button type="submit">Sign in</button>
    </form>
  )
}

注销

注销的方式与登录类似。大多数框架都提供客户端和服务器端方法来注销。

要使用表单操作注销用户,您可以构建一个调用 Auth.js 配置中导出的注销功能的按钮。

app/components/signout-button.tsx
import { signOut } from "@/auth.ts"
 
export function SignOut() {
  return (
    <form
      action={async () => {
        "use server"
        await signOut()
      }}
    >
      <button type="submit">Sign Out</button>
    </form>
  )
}
💡

请注意,当注销 Auth.js 应用程序中的 GitHub 等 OAuth 提供商时,用户不会在其他地方注销 GitHub。

Auth.js © Balázs Orbán 和团队 -2024