비밀번호 재설정
비밀번호 복구 기능은 유효한 이메일 커넥터 또는 SMS 커넥터가 구성되어 있을 때 자동으로 활성화됩니다. 사용자는 등록된 이메일 주소 또는 전화번호를 입력하여 비밀번호를 재설정할 수 있습니다.
계정 복구를 위한 비밀번호 찾기
비밀번호 재설정 기능이 활성화되면, 로그인 폼 아래에 "비밀번호를 잊으셨나요?" 링크 버튼이 표시됩니다. 사용자는 "비밀번호를 잊으셨나요?" 링크를 클릭하여 비밀번호 재설정 프로세스를 시작할 수 있습니다.
"비밀번호를 잊으셨나요?" 링크가 보이지 않나요? 유효한 이메일 또는 SMS 커넥터가 구성되어 있는지 확인하세요.
- 로그인 페이지 방문: 사용자가 로그인 페이지를 방문합니다.
- 비밀번호 찾기 링크 클릭: 사용자가 "비밀번호를 잊으셨나요?" 링크를 클릭합니다.
- 이메일/전화번호 입력: "비밀번호를 잊으셨나요?" 링크를 클릭하면, 사용자는 등록된 이메일 주소 또는 전화번호를 입력할 수 있는 새 페이지로 이동합니다.
- 인증 코드 전송: Logto는 사용자가 입력한 이메일 주소 또는 전화번호로 인증 코드를 전송하고, 코드 인증 페이지로 리디렉션합니다.
- 인증 코드 입력: 사용자가 이메일 또는 전화로 받은 인증 코드를 입력합니다. Logto는 해당 이메일 주소 또는 전화번호와 연결된 사용자의 코드 및 신원을 확인합니다.
- 새 비밀번호 입력: 인증 코드가 성공적으로 확인되면, 사용자는 새 비밀번호를 입력하라는 안내를 받습니다.
- 비밀번호 재설정 성공: 입력한 비밀번호가 비밀번호 정책 요건을 충족하면, 비밀번호가 성공적으로 업데이트됩니다.
- 로그인 페이지로 리디렉션: 사용자는 새 비밀번호로 로그인할 수 있도록 로그인 페이지로 리디렉션됩니다.

로그인 후 비밀번호 변경
인증된 사용자는 앱 내 계정 설정 경험을 통해 비밀번호를 변경(또는 최초 설정)할 수 있습니다. 계정 설정에서 Account API로 이를 구현하는 방법을 확인하세요.
사용자가 비밀번호를 가지고 있는지 확인
사용자 데이터에는 사용자가 현재 비밀번호 자격 증명을 보유하고 있는지 여부를 나타내는 불리언 필드 hasPassword
가 노출됩니다.
hasPassword
는 다음을 통해 확인할 수 있습니다:
- Management API: 예시
GET /api/users/:id
(user 객체에 포함) - 커스텀 토큰 클레임:
hasPassword
를 ID / 액세스 토큰에 주입 (프론트엔드에서 추가 API 호출 없이 UI 분기 가능)
그런 다음 Account API 엔드포인트를 호출하여 비밀번호를 설정하거나 업데이트하세요(요청 세부 정보는 계정 설정 가이드 참고). 비밀번호가 한 번도 없었던 사용자의 경우, 이전 비밀번호 필드는 필요하지 않으며 요구해서도 안 됩니다.
이메일 / 전화번호 / 사용자명 등록 시 “비밀번호 설정”이 필요하더라도, 순수 소셜 로그인으로 생성된 사용자는 기본적으로 비밀번호 생성 과정을 건너뛰어 진입 장벽을 낮춥니다. 이 사용자는 명시적으로 비밀번호를 설정하기 전까지 hasPassword = false
상태입니다. 보안 모델상 반드시 필요하지 않다면 소셜 가입 직후 즉시 비밀번호 설정을 강제하지 마세요—지연되고 상황에 맞는 안내가 전환율을 높입니다.
커스텀 비밀번호 정책
비밀번호 길이, 문자 요구사항, 금지 단어 등을 맞춤화하여 비즈니스의 보안 요구를 충족하면서도 좋은 사용자 경험을 제공하세요. 이 설정은 보안 > 비밀번호 정책 섹션에서 구성할 수 있습니다. 자세한 내용은 비밀번호 정책 문서를 참고하세요.
자주 묻는 질문
비밀번호 재설정 성공 후 사용자를 어떻게 로그아웃시키나요?
커스텀 UI에서 비밀번호 재설정 흐름을 어떻게 구현하나요?
Logto의 Management API 및 Account API를 사용하여 자체 비밀번호 재설정 흐름을 구현할 수 있습니다. 자세한 내용은 계정 설정을 참고하세요.
사용자의 이메일로 비밀번호 재설정 링크를 어떻게 보낼 수 있나요?
자체 호스팅 비밀번호 재설정 엔드포인트를 만들고 Logto SDK를 활용하여 first_screen
을 reset-password
로 설정한 인증 요청을 시작할 수 있습니다. 이렇게 하면 사용자가 비밀번호 재설정 페이지로 원활하게 리디렉션됩니다.