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.