處理登入和登出
要讓使用者登入,請確定您已設定至少一種驗證方法。然後您需要建立一個按鈕,從您的 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
的預設登入頁面。

驗證成功後,使用者將被重新導向回他們開始登入的頁面。如果您希望使用者在登入後被重新導向到其他地方(例如 /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。