Add Domainless login to your site in ten lines of code. Verify-on-server JWTs. No tracking pixels. No cross-site cookies. Powers our own seven sister sites — you can use the same primitive.
OAuth-style redirect, signed JWT, server-side verify. The flow your backend already knows.
Your “Sign in with Domainless” button sends the user
to domainless.fun/authorize?redirect=... with your
return URL.
Domainless authenticates the user, then bounces them back to your
URL with ?dl_token=... appended. The token is an
HS256-signed JWT.
Verify the token against the shared secret, mint your own session, store the user. Same primitive across every Domainless sister site.
Drop into any HTTP framework. Verify, then mint your own session token however you already do it.
import jwt from 'jsonwebtoken'; // On your callback route: app.get('/auth/domainless/callback', (req, res) => { const token = req.query.dl_token; try { const claims = jwt.verify(token, process.env.DOMAINLESS_JWT_SECRET, { algorithms: ['HS256'], }); // claims = { id, email, username, ... } // Mint your own session, store user, redirect to app. req.session.user = claims; res.redirect('/'); } catch (e) { res.status(401).send('invalid token'); } });
import os, jwt from flask import request, session, redirect @app.route('/auth/domainless/callback') def dl_callback(): token = request.args.get('dl_token') try: claims = jwt.decode( token, os.environ['DOMAINLESS_JWT_SECRET'], algorithms=['HS256'], ) except jwt.InvalidTokenError: return 'invalid token', 401 session['user'] = claims return redirect('/')
# Want to see what's inside a token without using a JWT lib? # Just base64-decode the payload. (For prod, ALWAYS verify the signature.) echo "<dl_token>" | cut -d. -f2 | base64 -d | jq # { # "id": "abc123", # "email": "user@example.com", # "username": "spongethrob", # "iat": 1714665600, # "exp": 1717257600 # }
<!-- Drop this anywhere on your site --> <a href="https://domainless.fun/authorize?redirect=https://yoursite.com/auth/domainless/callback" class="btn-domainless"> Sign in with Domainless </a>
We’ve been using this exact primitive in production for months. Same shared secret, same JWT shape, same verify code.
Authentication should not be a profit center. The free tier is the tier most apps will live on. Paid tiers add management and audit surface for teams that need it.
We grant SSO secrets manually during the beta so we can talk through your auth flow first. We’ll email you within a day.