Enter an email
No password rules, reset flows, or credentials for your user to remember.
Add magic-link login with two API calls. No passwords to protect, no user data stored by SimpleAuth, and no authentication system to build from scratch.
alex@example.comhttps://your.app/auth?token=eyJ...The user stays in a familiar flow. Your backend requests a magic link, receives the user back, and verifies the signed token before creating a session.
No password rules, reset flows, or credentials for your user to remember.
SimpleAuth emails a signed, expiring link that leads back to your configured URL.
Verify the token through the API, then use the returned email as the authenticated identity.
SimpleAuth stores no users, emails, App IDs, tokens, or signing keys. Everything required for verification travels inside signed artifacts.
There is no persistent database. Emails live inside signed, self-contained tokens—not on SimpleAuth servers.
Every token is signed with Ed25519. Change the email or expiration and signature verification fails.
You set the session duration. Expiration is embedded in the signed token and checked on verification.
Inspect the Go source, run it on your own infrastructure, and control SMTP and the backend secret.
Create your App ID once. At login, request a token; at callback, verify it. The API handles signing and delivery.
POST /tokens
X-SIMPLEAUTHLINK-APPID: <your-app-id>
X-SIMPLEAUTHLINK-SECRET: <your-app-secret>
Content-Type: application/json
{
"email": "alex@example.com"
}
// A signed magic link is sent by email.
PUT /tokens
X-SIMPLEAUTHLINK-APPID: <your-app-id>
X-SIMPLEAUTHLINK-SECRET: <your-app-secret>
Content-Type: application/json
{
"token": "<token-from-magic-link>"
}
// Response
{
"valid": true,
"expiration": "2026-08-28T14:30:00Z"
}
Let users sign in without turning passwords into your problem.