소개
넥스트인증(NextAuth.js)은 넥스트 앱을 위한 완전한 오픈 소스 인증 솔루션입니다.
넥스트와 서버리스를 지원하도록 처음부터 설계되었습니다.
유연성과 사용성
- 모든 OAuth 서비스와 함께 작동하도록 설계되었으며 OAuth 1.0, 1.0A, 2.0 그리고 오픈ID 커넥트(OIDC)를 지원
- 여러 인기 있는 로그인 서비스를 내장 지원
- 이메일, 비밀번호가 없는 인증 지원
- 모든 백엔드(액티브 디렉터리, LDAP 등)에서 무상태 인증 지원
- JSON 웹 토큰(JWT) 및 데이터베이스 세션 모두 지원
- 서버리스용으로 설계되었지만 어디서나 실행 가능 (AWS 람다, 도커, 헤로쿠 등)
자체 데이터를 소유
넥스트인증은 데이터베이스와 함께 또는 데이터베이스 없이 사용할 수 있습니다.
- 데이터를 계속 제어할 수 있는 오픈 소스 솔루션
- BYOD(Bring Your Own Database)를 지원하며 모든 데이터베이스와 함께 사용 가능
- 마이SQL, 마리아DB, 포스트그레, SQL 서버, 몽고DB, SQL라이트에 대한 내장 지원
- 인기 있는 호스팅 제공업체의 데이터베이스와 잘 작동함
- 데이터베이스 없이도 사용 가능 (예: OAuth + JWT)
참고
이메일 로그인을 위해서는 일회용 인증 토큰을 저장하도록 데이터베이스를 구성해야 합니다.
기본 보안
- 암호 없는 로그인 메커니즘 사용 촉진
- 기본적으로 안전하도록 설계되었으며 사용자 데이터를 보호하기 위한 모범 사례를 권장
- POST 경로(로그인, 로그아웃)에서 사이트 간 요청 위조 토큰 사용
- 기본 쿠키 정책은 각 쿠키에 가장 적합한 가장 제한적인 정책을 목표로 함
- JSON 웹 토큰이 활성화되면 A256GCM을 사용하여 기본적으로 암호화됨 (JWE)
- 개발자 편의를 위해 대칭 서명 및 암호화 키 자동 생성
- 단기 세션을 지원하는 탭/창 동기화 및 연결 유지 메시지 기능
- OWASP에서 발표한 최신 지침 구현 시도
고급 옵션을 사용하면 JSON 웹 토큰을 인코딩/디코딩하고 커스텀 쿠키 보안 정책 및 세션 속성을 설정하는 등 로그인의 커스텀 루틴을 정의할 수 있습니다. 따라서 로그인할 수 있는 사용자와 세션의 유효성을 다시 확인하는 빈도를 제어할 수 있습니다.