Kembo
BlogDocsSign in

Introduction

  • Overview
  • Getting started

Guides

  • Authentication
  • Pro features
  • Analytics
  • Dashboard

Reference

  • API
  • Legal & compliance
Kembo

Mobile auth in minutes. Google and Apple sign-in for Expo, Flutter, Capacitor, and Web.

Product

  • Documentation
  • Blog
  • Pricing
  • Get started

Legal

  • Privacy Policy
  • Terms of Service
  • DPA
  • Data Deletion

© 2026 Kembo

Operated by ByteStronauts

Documentation

Authentication

How Kembo handles Google and Apple sign-in, sessions, and the SDK surface in your app.

Sign-in providers

Kembo supports Google and Apple sign-in across Expo, Flutter, Capacitor, and Web. On the free plan, Kembo hosts OAuth — your app shows Kembo's sign-in UI and users authenticate without you configuring Google Cloud or Apple Developer credentials.

On Pro, you can use your own OAuth credentials and show your app name and logo on the sign-in screen.

Sign-in flow (high level)

  1. Your app renders the Kembo sign-in component (or calls the headless auth API on web).
  2. The user taps Continue with Google or Continue with Apple.
  3. Kembo completes OAuth and creates or updates an end-user record for your project.
  4. Kembo returns access and refresh tokens to the SDK.
  5. The SDK stores tokens securely and exposes the signed-in user via useUser() and useAuth().

Sessions & tokens

  • Access tokens are short-lived JWTs. Attach them to requests your backend makes on behalf of the user.
  • Refresh tokens rotate on each refresh. The SDK refreshes sessions automatically in production.
  • Sessions are stored server-side as hashed refresh tokens. Revoking a session invalidates future refreshes.

SDK hooks

After integration, your app typically uses:

  • useUser() — profile, email, avatar URL, and provider after sign-in.
  • useAuth() — sign-in, sign-out, and loading state.

The exact import path depends on your platform. Follow the setup guide in your project dashboard for copy-paste examples.

User roles

Every end user has a role: member (the default) or admin. Roles are per project and control who may manage other users.

  • member — can sign in and manage only their own account (including deleting it).
  • admin — can list and delete any user in the same project, directly from your app via useUsers() and the delete helper.

Only a project owner can grant the role, from the dashboard Users tab (Make admin / Remove admin). A user can never promote themselves — the role is read server-side from the database, not from anything the app sends, so it cannot be forged.

The signed-in user's role is available on the user object (user.role), so you can gate admin UI in your app, e.g. if (user.role === "admin"). Listing all users from a non-admin client returns 403; for fully server-side access use your secret key with the Node SDK.

Keep secret keys server-side

Never ship your sk_ secret key inside a mobile or web app — it can be extracted. For in-app user management, promote a trusted user to admin instead; for backend automation, use the secret key from your server.

Project settings endpoint

The SDK calls GET /api/v1/project with your publishable key to read public configuration — branding mode, which providers are enabled, and whether analytics is on. See the API reference.

Server-side verification

If your backend needs to trust Kembo sessions, verify the access token JWT or call GET /api/v1/auth/me with the bearer token. List and manage users from the dashboard Users tab or via the server API with your secret key.

Agent setup

The fastest path is often Agent setup in your project's Get started tab — paste the prompt into Cursor and let it wire Kembo into your existing app structure.

Apple Sign In notes

  • Apple may only send the user's name and email on the first authorization for a given Services ID. Kembo stores what Apple provides for later sign-ins.
  • Native Apple Sign In on iOS may require additional configuration on Pro when using your own Apple credentials.

Related guides

  • Getting started
  • Pro features & custom OAuth
  • API reference