Laravel용 인증 — 2FA, 패스키 및 JWT 세... 노트

Laravel용 인증 — 2FA, 패스키 및 JWT 세션을 갖춘 헤드리스 멀티 가드 로그인

Auth for Laravel은 API 기반 Laravel 애플리케이션을 위한 헤드리스 계정 인증을 위해 설계된 오픈 소스 패키지로, 사용자 정의 구현에서 흔히 발견되는 보안 취약점을 해결합니다. 비밀번호, 매직 링크, 이메일 코드, 패스키의 네 가지 로그인 방법을 제공하며, 강제 등록을 포함한 강력한 2단계 인증 챌린지 엔진을 갖추고 있습니다. 이 패키지는 RS256 액세스 토큰과 회전 가능한 리프레시 토큰, 세분화된 장치 세션 관리, 등록, 초대, 이메일 확인, 비밀번호 재설정과 같은 기능을 제공합니다. 로그인 활동 로그, 스로틀링, 새 장치 알림, 사용자 정의 가능한 위험 규칙 후크를 포함합니다.Auth for Laravel은 서로 다른 계정 유형(사용자, 클라이언트, 직원)에 대해 별도의 가드를 지원하며, 각 가드는 독립적인 모델, 구성, 엔드포인트 및 JWT 대상을 가집니다. JSON 엔드포인트는 가드별로 선택 사항이며 구성 가능하며, 모든 상태 변경은 확장성을 위해 이벤트를 트리거합니다. 설치는 몇 가지 composer 및 artisan 명령으로 이루어지며, 필요한 구성 및 마이그레이션을 게시하고 문제 해결을 위한 설치 검사기를 제공합니다. 개발자는 가드의 모델이 특정 인증 계약 및 트레이트를 구현하도록 하여 패키지를 통합합니다.로그인 시 토큰 쌍 또는 2단계 인증을 위한 챌린지가 반환되며, TOTP 코드 또는 패스키와 같은 다양한 방법을 사용하여 완료할 수 있습니다. 이 패키지는 HMAC 해시로 저장되는 일회용 챌린지를 보장하고, 병렬 추측 공격을 방지하기 위해 확인 전에 코드 시도 횟수를 계산합니다. 라우트 구성은 유연하여 각 가드에 대한 접두사, 이름 및 미들웨어를 사용자 정의할 수 있으며, 라우트는 해당 기능이 활성화된 경우에만 활성화됩니다.Auth for Laravel은 보안 기본값을 신중하게 처리합니다. 등록되지 않은 주소에 대한 로그인 시도는 동일한 응답을 반환하고, 비밀번호 해싱 전에 스로틀링이 발생하며, 민감한 링크/코드는 일회용 해시입니다. 기본적으로 비밀번호, 이메일 또는 2단계 설정 변경은 다른 세션을 무효화하며, 회전된 리프레시 토큰을 재사용하면 세션이 종료되고 알림이 발생합니다. 테스트는 실제 가드 및 토큰 검사를 대상으로 하도록 설계되었으며, 패키지는 테스트에서 계정으로 작동하기 위한 도우미를 제공합니다.소셜 로그인 및 SSO는 내장되어 있지 않지만, 기존 SSO 콜백은 패키지의 API를 통해 토큰을 발급할 수 있습니다. 이 패키지는 PHP ^8.4, Laravel 12 또는 13, 원자적 잠금 기능이 있는 캐시 저장소, 메일 전송이 필요합니다. MIT 라이선스이며, 종속성은 주로 Laravel, Symfony 및 기타 Roundly 패키지로 제한됩니다.