Hans-R-D/Auth.Nexus
0
1# Authentication System API Documentation2 3## Base URL4```5/v1/api6```7 8## Authentication Routes9 10### 1. Sign Up11Creates a new user account.12 13**Endpoint:** `POST /auth/signup`14 15**Request Body:**16```json17{18 "username": "string",19 "password": "string",20 "email": "string (optional)"21}22```23 24**Response (201 Created):**25```json26{27 "message": "User created successfully"28}29```30 31**Possible Errors:**32- `400 Bad Request`: Username already exists33 34### 2. Login35Authenticates a user and creates a new session.36 37**Endpoint:** `POST /auth/login`38 39**Headers:**40- `user-agent`: Browser/device user agent string (required)41 42**Request Body:**43```json44{45 "username": "string",46 "password": "string"47}48```49 50**Response (200 OK):**51```json52{53 "user_id": "string",54 "username": "string",55 "email": "string",56 "access_level": "string",57 "date_joined": "datetime",58 "access_token": "string",59 "token_type": "bearer"60}61```62 63**Possible Errors:**64- `401 Unauthorized`: Invalid credentials65 66### 3. Logout67Terminates an active session.68 69**Endpoint:** `POST /auth/logout`70 71**Query Parameters:**72- `user_id`: string73- `token`: string74 75**Response (200 OK):**76```json77{78 "message": "Session forcefully expired"79}80```81 82**Possible Errors:**83- `400 Bad Request`: No active sessions84 85### 4. Validate Token86Validates an existing session token.87 88**Endpoint:** `GET /auth/validate`89 90**Headers:**91- `user-agent`: Browser/device user agent string (required)92 93**Query Parameters:**94- `user_id`: string95- `token`: string96 97**Response (200 OK):**98```json99{100 "access_token": "string",101 "token_type": "bearer"102}103```104 105**Possible Errors:**106- `401 Unauthorized`: No active sessions, Device mismatch, Token expired, Invalid token107 108### 5. Search Users109Search for users by username.110 111**Endpoint:** `GET /auth/search-users`112 113**Query Parameters:**114- `query`: string115 116**Response (200 OK):**117```json118[119 "string"120]121```122 123### 6. Get User ID124Retrieve user ID by username.125 126**Endpoint:** `GET /auth/get-user-id`127 128**Query Parameters:**129- `username`: string130 131**Response (200 OK):**132```133"string" (user_id)134```135 136**Possible Errors:**137- `404 Not Found`: Username not found138 139### 7. Update Own Data140Update authenticated user's information.141 142**Endpoint:** `PUT /auth/user/update`143 144**Headers:**145- `token`: string146- `user-agent`: Browser/device user agent string (required)147 148**Query Parameters:**149- `user_id`: string150 151**Request Body:**152```json153{154 "password": "string (optional)",155 "email": "string (optional)",156 "username": "string (optional)"157}158```159 160**Response (200 OK):**161```json162{163 "username": "string",164 "email": "string",165 "access_level": "string",166 "date_joined": "datetime"167}168```169 170## Admin Routes171 172### 1. Get All Users173Retrieve all users (requires HUSH access level).174 175**Endpoint:** `GET /admin/users`176 177**Headers:**178- `user-agent`: Browser/device user agent string (required)179 180**Query Parameters:**181- `user_id`: string (admin's user ID)182- `token`: string183 184**Response (200 OK):**185```json186[187 {188 "username": "string",189 "email": "string",190 "access_level": "string",191 "date_joined": "datetime"192 }193]194```195 196**Possible Errors:**197- `403 Forbidden`: Insufficient permissions198 199### 2. Get User Details200Retrieve specific user details (requires HUSH access level).201 202**Endpoint:** `GET /admin/user/{user_id}`203 204**Headers:**205- `user-agent`: Browser/device user agent string (required)206 207**Query Parameters:**208- `admin_id`: string209- `token`: string210 211**Response (200 OK):**212```json213{214 "username": "string",215 "email": "string",216 "access_level": "string",217 "date_joined": "datetime"218}219```220 221### 3. Update User222Update user information (requires HUSH access level).223 224**Endpoint:** `PUT /admin/user/{user_id}`225 226**Headers:**227- `user-agent`: Browser/device user agent string (required)228 229**Query Parameters:**230- `admin_id`: string231- `token`: string232 233**Request Body:**234```json235{236 "password": "string (optional)",237 "email": "string (optional)",238 "username": "string (optional)"239}240```241 242### 4. Update Access Level243Update user access level (requires HUSH access level).244 245**Endpoint:** `PUT /admin/user/{user_id}/access-level`246 247**Headers:**248- `user-agent`: Browser/device user agent string (required)249 250**Query Parameters:**251- `admin_id`: string252- `token`: string253 254**Request Body:**255```json256{257 "access_level": "string"258}259```260 261## Access Levels262The system supports the following access levels in ascending order of privileges:2631. `default`2642. `member`2653. `admin`2664. `dev`2675. `hush`268 269## Notes270- All timestamps are in UTC271- Token expiration is set to 60 minutes272- Sessions are device-specific and validated against the user agent273- Database changes are saved to disk in debug mode274- The system automatically creates a HUSH-level system user on startup