Add Google popup, Email OTP and Magic Links to any web app in minutes. Hosted, OIDC-compatible, RS256-signed — zero backend secrets required.
Choose one or combine them all — each method is independently configurable per app.
One-tap popup via Firebase SDK. No page reload, no redirect round-trip, no credentials ever touch your backend.
6-digit codes sent via AWS SES. 10-minute expiry, automatic rate-limiting, and resend with one click.
Single-use sign-in links emailed to users. Click once, authenticated instantly. 15-minute expiry, no password required.
Standard access + refresh tokens with RS256 signing. Drop into any OIDC-aware framework with zero changes.
Each app gets its own clientId, redirect URI allowlist, and isolated user namespace — no cross-app leakage.
Public key endpoint at /api/jwks. Verify tokens in Node, Python, Go, PHP or Ruby — no shared secrets needed.
Firebase ID tokens are verified using Google's public JWKS — no service account JSON, no private credentials stored anywhere. RS256 asymmetric signing means any client can verify, but nobody can forge.
Three steps. No SDK to install on your end. Any frontend framework works.
Sign into the admin panel, click Create App, set your allowed redirect URIs and choose which auth methods to enable.
Point your users to the TrustOTP login URL with your client_id and redirect_uri. Google, OTP and Magic Link are all on the same page.
On callback, receive an RS256-signed access token in query params. Verify it with our JWKS endpoint — done. No SDK, any language.
// 1. Redirect user to TrustOTP login page
const url = new URL(
"https://trustotp.rocketinternet.in/login"
);
url.searchParams.set("client_id", YOUR_CLIENT_ID);
url.searchParams.set("redirect_uri", CALLBACK_URL);
url.searchParams.set("state", randomState());
window.location.href = url.href;
// 2. On callback — tokens arrive as query params
const { access_token, sub } = req.query;
// 3. Verify with our public JWKS (any language)
import { createRemoteJWKSet, jwtVerify } from "jose";
const JWKS = createRemoteJWKSet(new URL(
"https://trustotp.rocketinternet.in/api/jwks"
));
const { payload } = await jwtVerify(
access_token, JWKS
);
// payload.sub → your user ID ✓
// payload.email → verified email ✓The admin panel is live. Create your first app, grab the client ID, and your users can sign in with Google in under 5 minutes.
Self-hosted on Oracle Cloud · HTTPS secured · Free forever