Skip to content

Route Handlers

AuthxState::router() mounts these handlers under whatever path prefix you nest it at:

MethodPathBody / ParamsResponse
POST/sign-up{ "email", "password" }{ "token", "user", "session" }
POST/sign-in{ "email", "password" }{ "token", "user", "session" }
POST/sign-out— (session cookie)204 No Content
POST/sign-out/all— (session cookie)204 No Content
GET/session— (session cookie){ "user", "session" }
GET/sessions— (session cookie)[ Session, … ]
DELETE/sessions/:id— (session cookie)204 No Content

All errors return JSON:

{
"error": "invalid_credentials",
"message": "invalid credentials"
}
Error codeHTTP statusMeaning
invalid_credentials401Wrong email or password
user_not_found404Email not registered
session_not_found401Session expired or invalid
email_taken409Email already registered
email_not_verified403Must verify email first
invalid_token401Token expired or already used
account_locked429Too many failed attempts
weak_password422Password too short
forbidden403Insufficient permissions
internal_error500Server-side error
use axum::routing::get;
let auth_router = state.router()
.route("/me", get(me_handler)); // add to the auth sub-router
// Or on the root router:
let app = Router::new()
.route("/me", get(me_handler))
.nest("/auth", state.router());