Journey Docs
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/json

Member 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 created

Development Testing

For local development, use the test header:

X-Test-Clerk-Id: test_2abc123...

Token Claims

Clerk JWT tokens include:

  • sub: User ID
  • email: Primary email
  • phone_number: Primary phone
  • exp: Expiration timestamp
  • iat: Issued at timestamp

Bruno Examples

  • bruno/Members (Surface)/Auth/Validate.bru
  • bruno/Members (Surface)/Me/Profile/Get Me.bru

Error Handling

StatusDescription
401Invalid or expired token
403Member not provisioned
404Member not found

On this page