Skip to content
Migrating from NextAuth.js v4? Read our migration guide.
시작하기세션 관리로그인 및 로그아웃

사용자 로그인 및 로그아웃 처리

사용자를 로그인시키려면, 먼저 최소한 하나의 인증 방법을 설정해야 합니다. 그런 다음 Auth.js 프레임워크 패키지에서 제공하는 로그인 함수를 호출하는 버튼을 만들어야 합니다.

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

signIn 함수에 프로바이더를 전달하면 해당 프로바이더로 직접 로그인을 시도합니다. 그렇지 않으면, 애플리케이션에서 이 버튼을 클릭할 때 사용자는 설정된 로그인 페이지로 리디렉션됩니다. 만약 커스텀 로그인 페이지를 설정하지 않았다면, 사용자는 기본 로그인 페이지인 /[basePath]/signin으로 리디렉션됩니다.

Default Sign-in Page

인증이 완료되면, 사용자는 로그인을 시작한 페이지로 다시 리디렉션됩니다. 만약 로그인 후 사용자를 다른 곳으로 리디렉션하고 싶다면 (예: /dashboard), signIn 옵션에서 redirectTo로 대상 URL을 전달하면 됩니다.

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">로그아웃</button>
    </form>
  )
}
💡

Auth.js 애플리케이션에서 GitHub과 같은 OAuth 프로바이더로 로그아웃할 때, 사용자는 GitHub에서 다른 곳에서는 로그아웃되지 않습니다.

Auth.js © Balázs Orbán and Team - 2025