Skip to content

Auth Rail

Authentication, session management, and MFA.

The Auth Rail provides endpoints for user authentication, session management, multi-factor authentication, and password management.

/api/v1/auth
POST /api/v1/auth/login

Authenticate user and create session.

Request Body:

{
"email": "user@example.com",
"password": "********",
"rememberMe": true
}

Response:

{
"data": {
"accessToken": "eyJhbGciOiJSUzI1NiIs...",
"refreshToken": "dGhpcyBpcyBhIHJlZnJl...",
"tokenType": "Bearer",
"expiresIn": 3600,
"user": {
"id": "user_123",
"email": "user@example.com",
"name": "Ahmad Abdullah",
"roles": ["admin"]
},
"mfaRequired": false
}
}
POST /api/v1/auth/refresh

Refresh access token.

Request Body:

{
"refreshToken": "dGhpcyBpcyBhIHJlZnJl..."
}
POST /api/v1/auth/logout

Invalidate session.

POST /api/v1/auth/register

Register new user.

Request Body:

{
"email": "newuser@example.com",
"password": "SecureP@ss123",
"name": "New User",
"tenantId": "tenant_123"
}
POST /api/v1/auth/verify-email

Verify email address.

Request Body:

{
"token": "verification_token_here"
}
POST /api/v1/auth/forgot-password

Request password reset.

Request Body:

{
"email": "user@example.com"
}
POST /api/v1/auth/reset-password

Reset password with token.

Request Body:

{
"token": "reset_token_here",
"password": "NewSecureP@ss123"
}
POST /api/v1/auth/change-password

Change current user password.

Request Body:

{
"currentPassword": "OldP@ss123",
"newPassword": "NewSecureP@ss123"
}
POST /api/v1/auth/mfa/setup

Set up multi-factor authentication.

Request Body:

{
"method": "TOTP"
}

Response:

{
"data": {
"secret": "JBSWY3DPEHPK3PXP",
"qrCode": "data:image/png;base64,...",
"backupCodes": ["12345678", "87654321", "..."]
}
}
POST /api/v1/auth/mfa/verify

Verify MFA code during login.

Request Body:

{
"code": "123456",
"trustDevice": true
}
GET /api/v1/auth/sessions

List active sessions.

DELETE /api/v1/auth/sessions/:sessionId

Revoke a specific session.

MethodDescription
TOTPTime-based OTP (Google Authenticator)
SMSSMS OTP
EMAILEmail OTP
HARDWAREHardware key (FIDO2)
TypeLifetimeUse Case
Access Token1 hourAPI requests
Refresh Token7 daysToken refresh
ID Token1 hourUser identity
EventDescription
auth.login.successSuccessful login
auth.login.failedFailed login attempt
auth.logoutUser logged out
auth.password.changedPassword changed
auth.mfa.enabledMFA enabled