Quais são os recursos de uma operação de redefinição de senha?
- Isso muda alguma coisa.
- Há um valor que está definido como.
- Somente algumas pessoas têm permissão para fazer isso (o usuário, um administrador ou qualquer um, talvez com regras diferentes sobre como fazê-lo).
O ponto 1 aqui significa que você não pode usar GET, você deve POST algo representando a operação de alteração de senha em um URI que representa um recurso que lida com alterações de senha ou PUT algo que representa a nova senha em um URI que representa a senha ou representa algo (por exemplo, o usuário) cuja senha é um recurso.
Geralmente, nós POSTAMOS, não menos importante, porque pode ser estranho COLOCAR algo que não podemos obter mais tarde e, é claro, não podemos obter a senha.
O ponto 2, portanto, serão os dados que representam a nova senha, no que é POSTADO.
O ponto 3 significa que precisaremos autorizar a solicitação, o que significa que, se o usuário for o usuário atual, precisaremos que a senha atual seja comprovada (embora não necessariamente receba a senha atual, se, por exemplo, um desafio baseado em hash foi usado para provar o conhecimento dele sem enviá-lo).
O URI deve, portanto, ser algo como <http://example.net/changeCurrentUserPassword>
ou <http://example.net/users/joe/changePassword>
.
Podemos decidir que queremos receber a senha atual nos dados do POST, bem como no mecanismo de autorização geral que está sendo usado.