POST

/api/auth/login

Authenticate user and return JWT tokens

URL:
https://hub.regardingwork.com/api/auth/login
Method:
POST
Authentication:
Not required
Content-Type:
application/json

Request Body

Field Type Required Description
username string USERNAME only (NOT email address)
password string User's password
Important: Use username field for login, NOT email address. Email is only used during registration.
Example Request
{ "username": "testhub", // ← USERNAME (not email) "password": "tester123" }

Response

Success Response (200)
Field Type Description
message string Success message
access_token string JWT access token (24-hour expiration)
refresh_token string JWT refresh token (30-day expiration)
user object User profile data
{ "message": "Login successful", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 4, "username": "testhub", "email": "testhub@test.com", "email_verified": false, "is_active": true, "created_at": "2025-08-28T11:48:45.124195", "updated_at": "2025-08-28T11:48:45.124199", "bio": null, "website_url": null, "profile_photo_url": null } }

Error Responses

Status Error Description
400 No data provided Request body is missing or empty
400 Username/email and password are required Missing required fields
401 Invalid credentials Username/password combination is incorrect
401 Account is disabled User account has been deactivated

Code Examples

const login = async (username, password) => { try { const response = await fetch('https://hub.regardingwork.com/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }) }); const data = await response.json(); if (response.ok) { // Store tokens localStorage.setItem('access_token', data.access_token); localStorage.setItem('refresh_token', data.refresh_token); console.log('Login successful:', data.user); return data; } else { console.error('Login failed:', data.error); return null; } } catch (error) { console.error('Network error:', error); return null; } }; // Usage login('testhub', 'tester123');
import requests import json def login(username, password): url = 'https://hub.regardingwork.com/api/auth/login' data = { 'username': username, 'password': password } try: response = requests.post(url, json=data) result = response.json() if response.status_code == 200: # Store tokens (adjust storage method as needed) access_token = result['access_token'] refresh_token = result['refresh_token'] print('Login successful:', result['user']) return result else: print('Login failed:', result.get('error')) return None except requests.RequestException as e: print('Network error:', e) return None # Usage login('testhub', 'tester123')
curl -X POST https://hub.regardingwork.com/api/auth/login \ -H "Content-Type: application/json" \ -d '{ "username": "testhub", "password": "tester123" }'

Try It Live

Test the login endpoint with the demo credentials: