Register

Endpoint: POST /auth/register

Description: Register a new user account with email and password.

Headers:

  • Content-Type: application/json

Request Body:

{
  "username": "string (required, 3-30 chars, alphanumeric + underscore)",
  "name": "string (optional, 2-50 chars)",
  "email": "string (required, valid email)",
  "password": "string (required, min 8 chars, must contain uppercase, lowercase, number, special char)"
}

Success Response (201):

{
  "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:

400 Bad Request:

{
  "success": false,
  "message": "Email already registered."
}

422 Validation Error:

{
  "success": false,
  "message": "Validation failed",
  "errors": {
    "email": "Email is required",
    "password": "Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character"
  }
}
Updated on