Sign in

User Profiles

Every Auva Account has a public profile accessible at auva.dev/u/{username}. Users can customize their name, bio, avatar, and add profile links.


Profile Data Model

text
type User = {
  id: string;
  name: string;
  username: string;       // Unique, lowercase
  email: string;
  birthdate?: string;     // ISO date
  gender?: string;
  avatar?: string;        // URL
  bio?: string;           // Max 160 characters
  profileLinks?: {
    label: string;
    url: string;
  }[];
  createdAt: string;
  emailVerified: boolean;
};

Update Profile

text
PATCH https://auth.auva.dev/user/me
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "name": "Mohanad Alrwaihy",
  "username": "mohanad",
  "bio": "Building the future of software.",
  "profileLinks": [
    { "label": "GitHub", "url": "https://github.com/mohanad" },
    { "label": "Portfolio", "url": "https://mohanad.dev" }
  ]
}

Change Email

text
POST https://auth.auva.dev/user/change-email
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "newEmail": "new@email.com",
  "password": "current-password"
}

Changing your email requires your current password for security. The new email must be verified before it takes effect.


Check Username Availability

text
GET https://auth.auva.dev/auth/check-username/{username}

Response:

text
{
  "available": true
}

or

text
{
  "available": false,
  "reason": "Username is already taken"
}

Delete Account

text
DELETE https://auth.auva.dev/user/me
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "password": "your-password",
  "confirmationMessage": "DELETE MY ACCOUNT"
}

Account deletion is permanent and cannot be undone. All data across every Auva service will be removed.