Skip to content

Auth Service API

The Auth Service is responsible for handling user authentication, including login and token verification.

Endpoints

POST /api/v1/auth/login

Authenticates a user and returns a JWT if the credentials are valid.

Access: Public

Rate Limiting: This endpoint is rate-limited to prevent brute-force attacks.

Request Body

FieldTypeDescription
emailstringThe user's email address.
passwordstringThe user's password.

Responses

  • 200 OK: Authentication successful.

    json
    {
        "accessToken": "your.jwt.token",
        "user": {
            "id": "user-id",
            "email": "[email protected]",
            "role": "user"
        }
    }
  • 400 Bad Request: Email or password not provided.

    json
    {
        "message": "Email and password are required"
    }
  • 401 Unauthorized: Invalid credentials.

    json
    {
        "message": "Invalid credentials"
    }
  • 500 Internal Server Error: An unexpected error occurred.

    json
    {
        "message": "An internal server error occurred"
    }

Service Methods

verifyPassword(password: string, hash: string): Promise<boolean>

Compares a plain-text password with a hashed password to verify its correctness.

  • password: The plain-text password.
  • hash: The hashed password to compare against.
  • Returns: A promise that resolves to true if the password is valid, otherwise false.

login(email: string, password: string): Promise<LoginResponse | null>

Handles the user login process. It finds the user by email, verifies the password, and generates a JWT upon successful authentication.

  • email: The user's email.
  • password: The user's password.
  • Returns: A promise that resolves to a LoginResponse object containing the accessToken and user details, or null if authentication fails.

verifyToken(token: string): Promise<AuthTokenPayload | null>

Verifies the authenticity and expiration of a JWT.

  • token: The JWT string to verify.
  • Returns: A promise that resolves to the token's AuthTokenPayload if valid, otherwise null.