Endpoint: POST /auth/login
Description: Authenticate user with email and password.
Headers:
Content-Type: application/json
Request Body:
{
"email": "string (required, valid email)",
"password": "string (required, min 8 chars)"
}
Success Response (200):
{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"username": "johndoe",
"name": "John Doe",
"email": "john@example.com",
"avatar": "default.jpg",
"createdAt": "2023-01-01T00:00:00.000Z",
"updatedAt": "2023-01-01T00:00:00.000Z"
},
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Cookies Set:
-
accessToken
(HttpOnly, Secure, SameSite=None, 1 hour expiry) -
refreshToken
(HttpOnly, Secure, SameSite=None, 30 days expiry)
Error Responses:
401 Unauthorized:
{
"success": false,
"message": "Invalid email or password."
}
422 Validation Error:
{
"success": false,
"message": "Validation failed",
"errors": {
"email": "Please provide a valid email"
}
}