Skip to content
Open-source · OAuth 2.0 + PKCE · SSO

Passwordless authenticationfor your website

Let people sign in with a one-time code emailed to them — no passwords to create, remember, store, or leak. Logintoo is an OAuth 2.0 authorization server you can self-host.

How it works: for your users

Four steps, no password anywhere in sight.

  1. 1 A person signing in on a website

    A visitor taps Log in or Sign up on your site and is sent to the Logintoo authorization server, where they enter their email address.

  2. 2 An email arriving with a one-time code

    Logintoo emails a one-time access code to that address.

  3. 3 Entering the one-time code

    The visitor enters the code. Logintoo verifies it — proving they control the inbox — and sends them back to your site with an access token.

  4. 4 Signed in and accessing data

    Your site uses the token to grant access. The user has no password to remember, and you have none to store or protect.

Also supported

Single sign-on for organizations

When your user’s employer runs the directory, let them run the login.

For the user

They just type their work email

Logintoo recognizes the domain and hands them to their company’s own identity provider — Google Workspace, Microsoft Entra ID, Okta, or any OIDC provider. No new password, nothing new to learn.

For their IT admin

Access follows the directory

Their administrator decides who may sign in, from the console they already use. Offboard someone there and they lose access here — without a ticket to you.

For you

Nothing in your app changes

The same OAuth 2.0 redirect, the same signed token, the same code you already wrote. One claim tells you which way the user came in.

Everyone else keeps the one-time code — the two run side by side, decided per email domain. See how it works in the API.

How it works: under the hood

Standard OAuth 2.0 with PKCE — Logintoo just replaces the password with a one-time code.

Reference architecture

Three components work together:

A

Your website

The OAuth 2.0 client. It can be a static / JAMstack site.

B

Your API

The resource server that serves user requests. It can be serverless with API Gateway and Lambda.

C

Logintoo

The OAuth 2.0 authorization server that authenticates users and issues access tokens. Open source — deploy your own on AWS.

Diagram: the client website, your API (resource server), and the Logintoo authorization server exchanging tokens

The workflow

  1. 1

    Your site (the client) requests an access token from the authorization server, following the OAuth 2.0 and PKCE exchange in RFC 6749 and RFC 7636.

  2. 2

    The authorization server authenticates the user by emailing and validating a one-time code, then issues an access token.

  3. 3

    Your site calls your API (the resource server), presenting the access token — a signed JWT.

  4. 4

    The resource server validates the token and, if valid, serves the request.

The authorization server also issues and rotates refresh tokens, used to obtain a new access token when the current one expires. A single authorization server can issue tokens for many resource servers.

Why passwordless?

Passwords are the weak point attackers reach for first. Remove them, and a whole class of breaches goes with them — said better by the people who study it:

Verizon logo
In [Basic Web Application Attacks], about 88% of the breaches involve the use of stolen credentials.
2025 Data Breach Investigations Report, Verizon
Microsoft Security logo
Passwords can be stolen, guessed, reused, or captured through phishing.
Microsoft Security
Okta logo
Passwords are the weakest link in the security chain, prone to human error and vulnerable to phishing, credential stuffing, and brute force attacks.
Okta
IBM logo
Use of stolen credentials to access valid accounts surged 71% over the previous year and represented 30% of all incidents.
IBM X-Force Threat Intelligence Index, 2024

Ready to drop passwords?

Take the live demo for a spin, browse the source, or get in touch — we’d love to hear from you.