Authentication
Member Authentication
Clerk-based authentication for member endpoints
Members authenticate using Clerk JWT tokens obtained through various sign-in methods.
Authentication Flow
Required Headers
Authorization: Bearer <CLERK_JWT_TOKEN>
Content-Type: application/jsonMember Provisioning
Always call /members/me/auth/validate before making member-specific requests.
// Step 1: Provision member
const validateResponse = await fetch('/members/me/auth/validate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${clerkToken}`
}
});
const { member } = await validateResponse.json();
// member.provisionedNow indicates if new member was createdDevelopment Testing
For local development, use the test header:
X-Test-Clerk-Id: test_2abc123...Token Claims
Clerk JWT tokens include:
sub: User IDemail: Primary emailphone_number: Primary phoneexp: Expiration timestampiat: Issued at timestamp
Bruno Examples
bruno/Members (Surface)/Auth/Validate.brubruno/Members (Surface)/Me/Profile/Get Me.bru
Error Handling
| Status | Description |
|---|---|
| 401 | Invalid or expired token |
| 403 | Member not provisioned |
| 404 | Member not found |