Verificação de e-mail
Confirma o e-mail de uma conta com o token recebido e reenvia o link de verificação.
Lojas que exigem e-mail verificado bloqueiam o login (403 email_not_verified) até a pessoa clicar no link enviado no cadastro. O link contém um token que vale 72 horas. Esta página tem a rota que consome o token e as duas que reenviam o e-mail: uma para quem está logado, outra para quem não consegue logar.
Confirmar o e-mail
/api/v1/auth/verify-emailPúblicaConfirmar o e-mail com o token recebido
Corpo da requisição
tokenstringobrigatóriocurl -X POST "$BASE_URL/api/v1/auth/verify-email" \
-H "Content-Type: application/json" \
-d '{"token":"'"$VERIFY_TOKEN"'"}'{ "message": "email verified successfully" }| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo inválido | {"error":"invalid request body","detail":"..."} |
| 400 | Token vazio, desconhecido, já usado ou vencido | {"error":"invalid or expired verification token"} (token vazio: {"error":"token is required"}) |
Reenviar para o usuário logado
/api/v1/auth/verify-email/requestAutenticadaReenviar a verificação ao usuário logado
Para a tela "seu e-mail ainda não foi confirmado". Gera um token novo e envia o e-mail ao endereço da conta do token de acesso. Sem corpo.
Cabeçalhos
AuthorizationstringobrigatórioBearer <access_token>.curl -X POST "$BASE_URL/api/v1/auth/verify-email/request" \
-H "Authorization: Bearer $TOKEN"{ "message": "verification email sent" }| Status | Quando | Corpo |
|---|---|---|
| 400 | O e-mail já está verificado | {"error":"email already verified"} |
| 401 | Sem token de acesso válido | {"error":"authentication required"} |
Reenviar sem login
/api/v1/auth/verify-email/resendPúblicaReenviar a verificação sem estar logado
Para quem se cadastrou, não confirmou e agora não consegue logar. Para ninguém descobrir quais e-mails existem, a resposta é idêntica em todos os casos (conta desconhecida, já verificada, limite atingido ou sucesso).
Corpo da requisição
emailstringobrigatóriocurl -X POST "$BASE_URL/api/v1/auth/verify-email/resend" \
-H "Content-Type: application/json" \
-d '{"email":"maria.souza@example.com"}'{ "message": "ok" }| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo inválido ou email vazio | {"error":"email is required"} |
| 403 | reCAPTCHA ausente ou reprovado (se ativo na loja) | {"error":"captcha_required","detail":"reCAPTCHA token is required"} |
| 429 | Mais de 10 chamadas por minuto do mesmo IP | {"error":"rate limit exceeded",...} |