> ## Content Index
> Fetch the complete content index at: https://blog.fabrixly.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to Use Auth and Profile APIs
- URL: https://blog.fabrixly.com/how-to-use-auth-and-profile-apis/
- Published: 2026-07-07T14:10:44.000Z
- Updated: 2026-07-07T14:10:44.000Z
- Author: Fabrixly
- Tags: Documentation

This guide describes how to register users, manage auth sessions, verify emails, perform password resets, and update user profiles via the REST APIs.

---

## 🔑 Authentication

Most endpoints in this guide require standard user authentication. Include the user JWT token in your requests: `Authorization: Bearer <user-jwt-token>`

Exceptions: `/api/auth/register`, `/api/auth/forgot-password`, and `/api/auth/reset-password` are public endpoints.

---

## 1\. Register a User

Registers a new user account.

- **HTTP Method**: `POST`
- **Path**: `/api/auth/register`
- **Headers**:
  - `Content-Type: application/json`

### Request Body Parameters

| Parameter        | Type   | Required | Description                                          |
| ---------------- | ------ | -------- | ---------------------------------------------------- |
| email            | string | Yes      | Unique user email address.                           |
| password         | string | Yes      | Strong password.                                     |
| organizationName | string | Yes      | The name of the organization (tenant) to be created. |
| firstName        | string | No       | User's first name.                                   |
| lastName         | string | No       | User's last name.                                    |
| country          | string | No       | Country code (e.g. US).                              |

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "my-secure-password-789",
    "organizationName": "Acme Corp",
    "firstName": "Jane",
    "lastName": "Doe",
    "country": "US"
  }'

```

### Response (`201 Created`)

```json
{
  "id": "usr_abc123",
  "email": "user@example.com",
  "firstName": "Jane",
  "lastName": "Doe",
  "country": "US",
  "email_verified": false,
  "status": "active"
}

```

### Error Response (`400 Bad Request`)

```json
{
  "error": "Organization Name is required"
}

```

---

## 2\. Get Current Auth State (`/me`)

Retrieve profile details of the currently authenticated user.

- **HTTP Method**: `GET`
- **Path**: `/api/auth/me`
- **Headers**:
  - `Authorization: Bearer <user-jwt-token>`

### Example Request (curl)

```bash
curl -X GET https://ids.fabrixly.com/api/auth/me \
  -H "Authorization: Bearer <user-jwt-token>"

```

---

## 3\. Log Out

Revokes the active user session token.

- **HTTP Method**: `POST`
- **Path**: `/api/auth/logout`
- **Headers**:
  - `Authorization: Bearer <user-jwt-token>`

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/logout \
  -H "Authorization: Bearer <user-jwt-token>"

```

---

## 4\. Resend Verification Email

Resends the email confirmation link to unverified users.

- **HTTP Method**: `POST`
- **Path**: `/api/auth/resend-verification`
- **Headers**:
  - `Content-Type: application/json`

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/resend-verification \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com"
  }'

```

---

## 5\. Forgot Password

Requests a password reset link to be sent via email.

- **HTTP Method**: `POST`
- **Path**: `/api/auth/forgot-password`
- **Headers**:
  - `Content-Type: application/json`

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/forgot-password \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com"
  }'

```

---

## 6\. Reset Password

Resets the password using a valid reset token.

- **HTTP Method**: `POST`
- **Path**: `/api/auth/reset-password`
- **Headers**:
  - `Content-Type: application/json`

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/reset-password \
  -H "Content-Type: application/json" \
  -d '{
    "token": "reset-token-received-in-email",
    "password": "my-new-secure-password-000"
  }'

```

---

## 7\. Get User Profile

Retrieve the currently authenticated user's profile card details.

- **HTTP Method**: `GET`
- **Path**: `/api/profile`
- **Headers**:
  - `Authorization: Bearer <user-jwt-token>`

### Example Request (curl)

```bash
curl -X GET https://ids.fabrixly.com/api/profile \
  -H "Authorization: Bearer <user-jwt-token>"

```

---

## 8\. Update User Profile

- **HTTP Method**: `PUT`
- **Path**: `/api/profile`
- **Headers**:
  - `Content-Type: application/json`
  - `Authorization: Bearer <user-jwt-token>`

### Example Request (curl)

```bash
curl -X PUT https://ids.fabrixly.com/api/profile \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <user-jwt-token>" \
  -d '{
    "firstName": "Jane (Updated)",
    "lastName": "Doe (Updated)",
    "mobile": "+15550199"
  }'

```

---

## 9\. Change Password (Profile)

Updates the user's password while authenticated in their profile dashboard.

- **HTTP Method**: `PUT`
- **Path**: `/api/profile/password`
- **Headers**:
  - `Content-Type: application/json`
  - `Authorization: Bearer <user-jwt-token>`

### Example Request (curl)

```bash
curl -X PUT https://ids.fabrixly.com/api/profile/password \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <user-jwt-token>" \
  -d '{
    "currentPassword": "old-password-123",
    "newPassword": "new-password-456"
  }'

```

---

## 10\. Verify MFA Recovery Code

Verifies an emergency recovery backup code to bypass standard multi-factor authentication (e.g. if the authenticator device is lost).

- **HTTP Method**: `POST`
- **Path**: `/api/auth/verify-recovery-code`
- **Headers**:
  - `Content-Type: application/json`

### Example Request (curl)

```bash
curl -X POST https://ids.fabrixly.com/api/auth/verify-recovery-code \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "recoveryCode": "abcd-1234"
  }'

```

### Response (`200 OK`)

```json
{
  "message": "Recovery code accepted. MFA has been temporarily bypassed.",
  "token": "one-time-session-jwt-token-string"
}

```