Skip to content
AUTH

Sign-up and login.
One API, any client.

Give your app's users email and password, GitHub or Google sign-in. Call a plain HTTP API from a website, a mobile app or a server, and get back a token.

Email, GitHub and Google 10,000 active users free No SMTP to set up
AUTH · LIVE
Sign inEMAILada@example.comPASSWORDContinueORGHGAUTH_URL@GHG{ token, user }WEBtokenMOBILEtokenSERVERtoken
10,000monthly active users free per project
$0.003per additional active user a month
Any originCORS is open, so sites, apps and servers all work
WHAT YOU GET

Everything included.
Nothing to wire up.

Email, GitHub and Google sign-in for your app's users, as a simple HTTP API.

Email and password

Always on. Require a verified email before sign-in if you like, and users get reset and verification links that return them to your site.

GitHub and Google

Use CloudHike.dev's shared OAuth apps or your own client ID and secret. Provider users land in the same Users list.

Works from any client

No cookies. Sign-in returns a token you send as a Bearer header, from a website, a mobile app or a server.

Your database or ours

Users and sessions live in managed storage, or in your project's Postgres under the auth schema. One toggle moves them.

Users in the dashboard

Search and delete users from Open Auth, or from your server with the admin endpoints and the secret key.

Emails in your voice

Change the sender name, send from your verified domain and edit the verification and reset emails with a live preview.

HOW IT WORKS

Three steps
to production.

  1. 01
    Deploy

    Click Deploy on the Auth card. You get AUTH_URL, AUTH_PUBLISHABLE_KEY and AUTH_SECRET_KEY.

  2. 02
    Connect

    Send the publishable key as x-api-key and call sign-up or sign-in. Both return { token, user }.

  3. 03
    Protect

    Keep the token in an HTTP-only cookie your server sets, and call get-session on each request.

Read the Auth guide
lib/auth.ts
const AUTH_URL = process.env.AUTH_URL!;
const headers = {
  "content-type": "application/json",
  "x-api-key": process.env.AUTH_PUBLISHABLE_KEY!,
};

export async function signIn(email: string, password: string) {
  const res = await fetch(`${AUTH_URL}/sign-in/email`, {
    method: "POST",
    headers,
    body: JSON.stringify({ email, password }),
  });
  if (!res.ok) throw new Error((await res.json()).message);
  return res.json(); // { token, user }
}

export async function getSession(token: string) {
  const res = await fetch(`${AUTH_URL}/get-session`, {
    headers: { ...headers, authorization: `Bearer ${token}` },
  });
  return res.ok ? res.json() : null;
}
BETTER TOGETHER

One project.
Every service connected.

Same project, same .env, same bill.

FAQ

Questions about
Auth.

Do I need to set up SMTP for verification and reset emails?
No. Emails come from CloudHike.dev's sender. You can change the sender name, send from a domain you verified under Email, and edit the wording.
Where are my users stored?
In managed storage, or in your project's Postgres under the auth schema. The Store users in project database toggle moves them, and sign-in pauses briefly during the move.
What does it cost?
The first 10,000 monthly active users per project are free on both plans, then $0.003 per additional user a month. The free plan holds up to 10,000 registered users; Pro has no limit.
What if my secret key leaks?
Click Reset keys on the Auth card. Users stay signed in, because sessions are signed with a separate per-project secret.

Add Auth to your project.
Free to start.

Postgres, auth, storage, Redis, email and AI models. One API key.