サインインとサインアウトの処理
ユーザーにサインインしてもらうには、少なくとも1つの認証方法を設定する必要があります。その後、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構成からエクスポートされたsignout関数を呼び出すボタンを作成できます。
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の他の場所からはサインアウトされません。