Authentication

(User Register) : POST /auth/register

Request body (json) :

{
  "username": "string",
  "email": "hello@gmail.com",
  "password": "string",
  "display_name": "string"
}

Response (201 Created) :

{
    "user": {
        "user_id": "5c933550-5517-4f74-b9dc-1bb808b8f4c8",
        "username": "string",
        "email": "hello@gmail.com",
        "display_name": "string",
        "bio": "",
        "profile_picture_url": "#",
        "role": "USER",
        "registration_date": "2025-01-14T14:31:48.5908993+08:00",
        "created_at": "2025-01-14T14:31:48.5908993+08:00",
        "updated_at": "2025-01-14T14:31:48.5908993+08:00"
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWM5MzM1NTAtNTUxNy00Zjc0LWI5ZGMtMWJiODA4YjhmNGM4Iiwicm9sZSI6IlVTRVIiLCJpc3MiOiJ5b3VyLWFwcCIsImV4cCI6MTczNjkyMjcwOCwiaWF0IjoxNzM2ODM2MzA4fQ.upJNYMQpO2J2-9Hfkq3Sl-_drNyAOzs4bVtbB2chNN8"
}

(User/Admin Login) : POST /auth/login

Response (200 OK) :

{
    "user": {
        "user_id": "5c933550-5517-4f74-b9dc-1bb808b8f4c8",
        "username": "string",
        "email": "hello@gmail.com",
        "display_name": "string",
        "bio": "",
        "profile_picture_url": "#",
        "role": "USER",
        "registration_date": "2025-01-14T14:31:48.590899+08:00",
        "created_at": "2025-01-14T14:31:48.590899+08:00",
        "updated_at": "2025-01-14T14:31:48.590899+08:00"
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWM5MzM1NTAtNTUxNy00Zjc0LWI5ZGMtMWJiODA4YjhmNGM4Iiwicm9sZSI6IlVTRVIiLCJpc3MiOiJ5b3VyLWFwcCIsImV4cCI6MTczNjkyMjc1NiwiaWF0IjoxNzM2ODM2MzU2fQ.miuM-0IeYJqvklVdyRRG6sNFrPj9i3z6dgxE5_NMwb0"
}

(Admin Register) : POST /auth/admin/register

Request body (json) :

{
  "username": "admin1",
  "email": "admin@gmail.com",
  "password": "string",
  "display_name": "string",
  "secret_key": "your-ADMIN-key"
}

Response (201 Created) :

{
    "user": {
        "user_id": "a34db144-5ae9-47b9-ae74-a78a68eac837",
        "username": "admin1",
        "email": "admin@gmail.com",
        "display_name": "string",
        "bio": "",
        "profile_picture_url": "#",
        "role": "ADMIN",
        "registration_date": "2025-01-14T14:30:51.9954435+08:00",
        "created_at": "2025-01-14T14:30:51.9954435+08:00",
        "updated_at": "2025-01-14T14:30:51.9954435+08:00"
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYTM0ZGIxNDQtNWFlOS00N2I5LWFlNzQtYTc4YTY4ZWFjODM3Iiwicm9sZSI6IkFETUlOIiwiaXNzIjoieW91ci1hcHAiLCJleHAiOjE3MzY5MjI2NTIsImlhdCI6MTczNjgzNjI1Mn0.6sMAYFmcWiw4YKKB8vPoCzUdQFojPmf0zqZSzgNu9JM"
}