2010-04-21 2 views
4

나는 예약 응용 프로그램을위한 RESTful API를 설계하고 있으며, 응용 프로그램의 모든 세부 사항을 4 가지 HTTP 메소드로 매핑 할 수 있다는 것을 알게되어 매우 기뻤다.RESTful API : '새 비밀번호 요청'을 모델링하는 방법은 무엇입니까?

/users - GET, POST 
/users/({id}|myself) - GET, POST, PUT, DELETE 
/users/({id}|myself)/bookings - GET, POST 
/users/({id}|myself)/bookings/{id} - GET, POST, PUT, DELETE 

예 : 내 사용자를 업데이트하면/users/myself에 PUT이 사용됩니다.

하지만 이제 한 가지가 누락되었음을 알았습니다. 이전 암호를 잊어 버린 경우 새 암호를 요청할 가능성. 내가 어떻게 이것을 추가 할 수 있었는지 아는 어떤 생각?

답변

1
/users/({id}|myself)/forgottenpassword/, GET or PUT 

또는 사용자에게 웹 사이트로 이동하는 방법을 구현하기 만하면됩니다. 새 비밀번호를 요청하여 가정

+0

사용자를 웹 사이트로 보내는 것이 대안이었습니다. – janpio

+0

최상의 옵션이 될 것 같습니다. – UnkwnTech

+0

이것은 완전히 멈추지 않습니다. RPC 호출이 있습니다. 잊어 버린 암호를 사용자에게 푸시 할 수있는 것처럼 보입니다. 이상한 :) Imho ID가 사용자가 기억해야하는 키인 경우 암호/암호/{id}를 얻는 것이 좋습니다. 그러면 보안 논리에 따라 비밀번호를 반환하거나 사용자 이메일에 새 비밀번호를 보낼 수 있습니다. 사용자 경로 사용을 주장하는 경우 : GET/users/{id}/password – Janus007

2

, 당신은 새 임시 암호를 할당 시스템의 전형적인 행동을 언급 한 다음 사용자가 내가의 라인을 따라 somethign 할 것, 그것을 다시 할 수있게됩니다

POST :/users/myself/resetPassword

그런 다음 임시 암호를 반환하거나 사용자에게 전자 메일을 보내거나 새 임시 암호를 다시 사용자에게 전달하는 다른 방법을 사용하십시오.

+0

REST 원칙을 위반합니다. – Janus007

3

작업이 본질적으로 업데이트이므로 새 암호가 생성됩니다. POST 동사를 사용합니다. 암호가없는 경우 요청자를 확인하는 데 사용할 수있는 공유 암호를 기반으로 일부 챌린지/응답 프로토콜을 이미 준비하지 않은 경우 암호를 제공하는 대체 방법을 찾아야합니다. 가장 쉬운 방법은 변경 사항을 적용하고 새 비밀번호를 표시하는 데 사용할 수있는 링크가있는 기록 계정의 사용자에게 이메일을 보내는 것입니다.

+0

POST - 좋은 소리입니다. 사용자에게 이메일이 전송되며 링크를 클릭하여 새 비밀번호를 요청해야합니다. – janpio

관련 문제