Senha e e-mail
Troca a senha e o e-mail de login do cliente, encerrando as sessões abertas.
As credenciais de login ficam em duas rotas dedicadas, porque trocar a senha ou o e-mail muda quem consegue entrar. As duas pedem a senha atual, encerram todas as sessões e todos os tokens do cliente e não funcionam em sessão de suporte (quando um administrador entrou "como o cliente"): nesse caso respondem 403 impersonation_blocked.
/api/v1/storefront/profile/passwordClienteTroca a senha do cliente
Corpo da requisição
current_passwordstringobrigatórioSenha atual.
new_passwordstringobrigatórioNova senha: pelo menos 10 caracteres, com maiúscula, minúscula, número e símbolo (
!@#$%^&*()_+-=[]{}|;:,.<>?/~ etc.). Não pode repetir a atual nem uma das 3 últimas senhas.bash
curl -X POST "$BASE_URL/api/v1/storefront/profile/password" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"current_password": "Senha@12345",
"new_password": "NovaSenha#2026"
}'200Senha trocada
json
{ "message": "password changed" }| Status | Quando | Corpo |
|---|---|---|
| 400 | Senha atual errada, nova senha fraca ou repetida, ou campos ausentes | {"error":"current password is incorrect"} / {"error":"password_too_weak","detail":"password_too_weak: missing symbol"} / {"error":"current_password and new_password are required"} |
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | Sessão de suporte (administrador entrando como o cliente) | {"error":"impersonation_blocked"} |
/api/v1/storefront/profile/emailClienteTroca o e-mail de login do cliente
Corpo da requisição
current_passwordstringobrigatórioSenha atual, para confirmar que é o dono da conta.
new_emailstringobrigatórioNovo e-mail. Tem de ser válido e não estar em uso.
bash
curl -X POST "$BASE_URL/api/v1/storefront/profile/email" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"current_password": "Senha@12345",
"new_email": "maria.nova@example.com"
}'200E-mail trocado
json
{ "message": "email changed", "requires_relogin": true }| Status | Quando | Corpo |
|---|---|---|
| 400 | E-mail inválido ou campos ausentes | {"error":"invalid_email"} |
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | Senha atual errada, ou sessão de suporte | {"error":"current_password_invalid"} / {"error":"impersonation_blocked"} |
| 409 | O e-mail já pertence a outra conta | {"error":"email_already_registered"} |