인증되지 않은 사용자
엔드 포인트 에서 PUT
요청을 수행 api/v1/account/password
하고 사용자가 비밀번호를 재설정 (업데이트)하려는 계정을 식별하기 위해 해당 계정 이메일과 함께 매개 변수가 필요합니다.
PUT : /api/v1/account/password?email={email@example.com}
참고 : 로 @DougDomeny가 URL에 쿼리 문자열로 이메일을 전달하는 그의 코멘트에 언급 된 보안 위험이다. GET 매개 변수는 사용할 때 노출되지 않지만 https
( https
이러한 요청에 대해 항상 적절한 연결을 사용해야 함 ) 관련된 다른 보안 위험이 있습니다. 여기에 있는 이 블로그 게시물 에서이 주제에 대해 자세히 읽을 수 있습니다 .
요청 본문에 이메일을 전달하는 것이 GET 매개 변수로 전달하는 것보다 더 안전한 대안이 될 것입니다.
PUT : /api/v1/account/password
요청 본문 :
{
"email": "email@example.com"
}
응답에는 202
허용 된 응답 의미가 있습니다.
처리를 위해 요청이 수락되었지만 처리가 완료되지 않았습니다. 요청은 처리가 실제로 수행 될 때 허용되지 않을 수 있으므로 결국 처리되거나 처리되지 않을 수 있습니다. 이와 같은 비동기 작업에서 상태 코드를 다시 보낼 수있는 기능은 없습니다.
사용자는에서 이메일을 받게 email@example.com
되며 업데이트 요청 처리 는 이메일 의 링크로 수행 한 작업에 따라 달라집니다.
https://example.com/password-reset?token=1234567890
이 이메일에서 링크를 열면 숨겨진 입력 필드에 대한 입력으로 링크의 비밀번호 재설정 토큰을 사용하는 프런트 엔드 애플리케이션의 비밀번호 재설정 양식으로 연결됩니다 (토큰은 쿼리 문자열로 링크의 일부 임). 다른 입력 필드에서는 사용자가 새 암호를 설정할 수 있습니다. 새 암호를 확인하는 두 번째 입력은 프런트 엔드에서 유효성 검사에 사용됩니다 (오타 방지).
참고 : 이메일에서 사용자가 비밀번호 재설정을 초기화하지 않은 경우 이메일을 무시하고 현재 비밀번호로 애플리케이션을 정상적으로 계속 사용할 수 있다고 언급 할 수도 있습니다.
새 암호와 토큰을 입력으로 사용하여 양식을 제출하면 암호 재설정 프로세스가 수행됩니다. 양식 데이터는 PUT
요청 과 함께 다시 전송 되지만 이번에는 토큰을 포함하여 리소스 비밀번호를 새 값으로 바꿉니다.
PUT : /api/v1/account/password
요청 본문 :
{
"token":"1234567890",
"new":"password"
}
응답은 204
내용 없음 응답이됩니다.
서버가 요청을 수행했지만 엔티티 본문을 반환 할 필요가 없으며 업데이트 된 메타 정보를 반환 할 수 있습니다. 응답은 엔티티 헤더의 형태로 새로운 또는 업데이트 된 메타 정보를 포함 할 수 있으며, 존재하는 경우 요청 된 변형과 연관되어야합니다.
인증 된 사용자
비밀번호를 변경하려는 인증 된 사용자의 PUT
경우 이메일없이 요청을 즉시 수행 할 수 있습니다 (비밀번호를 업데이트하는 계정이 서버에 알려져 있음). 이 경우 양식은 두 개의 필드를 제출합니다.
PUT : /api/v1/account/password
요청 본문 :
{
"old":"password",
"new":"password"
}