Auth Service provides a two-step password reset flow: the user requests a reset email, receives a link containing a single-use token, and submits that token along with their new password. The entire flow is designed with anti-enumeration principles — the request endpoint always returns the same response regardless of whether the email belongs to a real account, preventing attackers from probing the user database.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ricardomb-tech/auth-service/llms.txt
Use this file to discover all available pages before exploring further.
Request a password reset email
The user submits their email address. Auth Service queues a reset email if — and only if — an active account exists for that address. The HTTP response is always Response — 202 Accepted
202 Accepted with a generic message.This endpoint intentionally returns an identical
202 Accepted response whether or not the email address corresponds to a registered account. This is an anti-enumeration control: an attacker cannot use this endpoint to determine whether a given email exists in the system. Never modify this behavior to return a 404 for unknown emails.User receives the reset email
If the account exists, Auth Service sends an email containing a password reset link. The link includes a single-use token as a URL parameter, constructed using the Your frontend should be configured to intercept this URL, extract the
APP_BASE_URL environment variable:token parameter from the query string, and present a “set new password” form to the user.Reset token properties:| Property | Value |
|---|---|
| Format | Cryptographically random opaque string |
| Storage | SHA-256 hash stored in the database (raw value never persisted) |
| TTL | 1 hour from generation |
| Reuse | Single-use; consumed immediately on successful reset |
Submit the new password
Once the user enters their new password, your frontend posts the token and the new password to Response — 200 OKUnlike
/auth/reset-password./auth/forgot-password, this endpoint does return a distinguishable error response when the token is invalid. The caller already possesses the token, so there is no enumeration risk in revealing that it did not work.Error cases that return 400 Bad Request:- The token does not exist in the database
- The token has expired (TTL of 1 hour)
- The token has already been consumed (already used for a previous reset)
400 Bad Request with an application/problem+json body.Effect on active sessions
Configuration
| Environment variable | Description |
|---|---|
APP_BASE_URL | Base URL of the Auth Service instance. Used to construct the reset link embedded in the password reset email. Example: https://auth.example.com. |
APP_BASE_URL is set correctly for each environment. In local development the default is http://localhost:8080; outgoing emails are captured by MailHog at http://localhost:8025.