For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/web/authentication.md (or send Accept: text/markdown).
인증
로그인 방법, 세션, 계정 보안.
실제 계정 생성 및 확인
인증은 누가 앱을 사용하고 있는지 증명하는 것을 의미합니다. Postgres를 시작하고 먼저 데이터베이스 가이드를 사용하여 마이그레이션을 실행한 다음 웹 서버를 실행 상태로 둡니다. http://localhost:3000/auth,를 열고 이메일/비밀번호 가입을 선택하고 이름, 이메일, 비밀번호를 입력하고 제출하세요. 첫 번째 테스트를 위해 EMAIL_PROVIDER=local를 유지하세요.
흐름이 이메일 코드를 요청하면 다른 브라우저 탭에서 http://localhost:3000/mail-preview를 열고 해당 주소에 대한 가장 최근 메시지를 찾아 해당 코드를 로그인 양식에 다시 복사합니다. 만료된 경우 새 코드를 요청하세요. 이러한 메시지는 로컬 보낼 편지함에 남아 있습니다. 외부 받은편지함을 반복해서 확인해도 찾을 수 없습니다. 로그아웃한 다음 다시 로그인하여 데이터베이스 지원 계정이 작동하는지 확인하세요.
가입 시 데이터베이스 연결 또는 테이블 누락 오류가 보고되면 소셜 로그인을 활성화하는 대신 데이터베이스 설정을 완료하세요. Google, GitHub, Apple, X 및 Microsoft 버튼에는 자체 공급자 애플리케이션 및 콜백 설정이 필요합니다. 공급자 가이드가 완료된 후에만 활성화하십시오. Better Auth는 기본 엔진으로 제공되며 로컬 이메일 로그인을 위해 유료 인증 계정이 필요하지 않습니다.
활성화할 로그인 방법 선택
기반에는 이메일/비밀번호, OTP, 구성 가능한 소셜 인증이 포함됩니다. Better Auth가 신원과 세션을 소유하고, 애플리케이션이 프로바이더 구성과 OTP 트랜잭션 전송을 구성합니다.
구성한 소셜 프로바이더만 활성화하세요. 프로바이더 클라이언트 시크릿과 인증 시크릿은 서버에 둡니다.
신원을 워크스페이스에 연결
인증된 핸들러는 워크스페이스 레코드에 닿기 전에 세션 상태를 해석합니다. 워크스페이스 프로비저닝은 멱등해야 하며 라이프사이클 후크를 반복해도 소유권 레코드가 중복 생성되지 않아야 합니다.
세션 동작 검증
로그인, 유효하지 않거나 만료된 OTP, 일회용 소비, 로그아웃, 거부된 익명 액세스를 테스트하세요. 메모리 어댑터 테스트는 핸들러 의미를 커버합니다. 프로덕션 데이터베이스 영속화와 실제 프로바이더 콜백은 별도의 수용이 필요합니다.
설치 및 설정
Better Auth가 기본 엔진입니다(AUTH_PROVIDER=better-auth). Auth.js 엔진은 이를 표준으로 삼는 팀을 위해 제공됩니다. 활성화된 메서드는 프로바이더별로 선언됩니다: 이메일/비밀번호, 트랜잭션 메일로 전달되는 일회용 코드, Google·Apple·GitHub·Microsoft·Twitter 소셜 로그인.
각 소셜 프로바이더는 AUTH_<PROVIDER>_ENABLED 플래그와 해당 client id·secret으로 켜집니다. 인증 시크릿, 프로바이더 시크릿, 세션 서명 키는 서버 전용 설정입니다.
AUTH_PROVIDER=better-auth
AUTH_SECRET=generate-a-long-random-value
AUTH_GOOGLE_ENABLED=true
GOOGLE_CLIENT_ID=…
GOOGLE_CLIENT_SECRET=…구현 워크플로
/auth 표면은 구성된 메서드를 렌더링하고, 서버는 auth-runtime에서 엔진을 조합하며 보호된 경계마다 세션을 해석합니다. 첫 로그인 성공은 멤버의 개인 워크스페이스를 멱등적으로 프로비저닝합니다 — 반복된 라이프사이클 훅이 두 번째 소유권 레코드를 만들어서는 안 됩니다.
계정 보안은 /settings/security에 있습니다: 비밀번호 변경, 활성 세션, 빌드가 활성화한 패스키. 세션 복원, 로그아웃 시 폐기, 워크스페이스 간 거부는 UI 상태가 아닌 서버 강제 동작으로 유지하세요.
검증 및 문제 해결
로그인, 유효하지 않거나 만료된 OTP 코드, 단회 소비, HTTPS 오리진의 패스키 세리머니, 소셜 콜백 복귀, 로그아웃, 익명 거부를 검증합니다. 콜백을 테스트하기 전에 각 프로바이더의 리다이렉트 URI를 등록하고, 폐기된 세션이 보호된 작업을 계속 수행할 수 없는지 확인하세요.