info: name: Login User type: http seq: 1 http: method: POST url: "{{base_url}}/api/auth/login" body: type: json data: |- { "login": "testuser@tests.bookhoard.internal", "password": "Test@Pass123!" } runtime: scripts: - type: after-response code: |- function onResponse(res) { try { const responseBody = res.getBody(); const token = responseBody.access_token; const refreshToken = responseBody.refresh_token; if (token) { bru.setEnvVar("token", token, { persist: true }); console.log("Access token saved:", token); } if (refreshToken) { bru.setEnvVar("refresh_token", refreshToken, { persist: true }); console.log("Refresh token saved:", refreshToken); } if (!token && !refreshToken) { console.log("No tokens found in response."); } } catch (error) { console.error("Error in post-response script:", error.message); } } onResponse(res); settings: encodeUrl: true timeout: 0 followRedirects: true maxRedirects: 5 docs: |- ## Login User Authenticates a user with email/username and password. **Method:** POST **Endpoint:** /api/auth/login **Request Body:** - `login` (string): Email or username - `password` (string): Password **Response:** - `token` (string): JWT token - `user` (object): User details - `id` (string): User ID - `email` (string): Email - `username` (string): Username - `theme` (string): User theme preference - `first_name` (string): First name - `last_name` (string): Last name **Status Codes:** - 200: Success - 401: Invalid credentials