Developer guide
Integrate Sign in with Auto Secure Login
Everything below is standard OpenID Connect. Read the endpoints from the discovery document rather than copying them; it also lists the supported response types, PKCE methods and signing algorithms. In the tables, <slug> stands for your client ID.
Endpoints
| Issuer | https://login.autosecurelogin.com/ |
|---|---|
| Discovery | https://login.autosecurelogin.com/ |
| Authorize | https://login.autosecurelogin.com/ |
| Token | https://login.autosecurelogin.com/ |
| UserInfo | https://login.autosecurelogin.com/ |
| Keys (JWKS) | https://login.autosecurelogin.com/ |
| Sign-out | https://login.autosecurelogin.com/ |
Scopes and claims
| Scope | What you receive |
|---|---|
openid (required) | sub, a stable, opaque user ID. Store this, not the email. |
email | email and email_verified. The flag is currently always false; verify the address yourself if you depend on it. |
profile | name, given_name, family_name, preferred_username, nickname. Outside apps never receive ASL group names. |
offline_access | A refresh token, valid 30 days. |
Access tokens last 10 minutes. ID tokens are signed with RS256; check the signature against the JWKS endpoint, then iss, aud, exp and your nonce.
The sign-in flow
- Send the person to the authorize endpoint with
response_type=code, yourclient_id,redirect_uri,scope=openid email profile, a randomstate, a randomnonce, and a PKCEcode_challengewithcode_challenge_method=S256. PKCE is required for public clients and recommended for everyone. - The person signs in to ASL in English or Spanish: password, passkey or a linked Google, Microsoft, Apple or GitHub account, plus their 2-step check. ASL asks once whether to allow your app; the answer is remembered for four weeks.
- ASL redirects back to your
redirect_uriwithcodeand yourstate. Checkstate, then POST the code, the sameredirect_uri, yourcode_verifierand your client credentials to the token endpoint. - Validate the ID token. Call UserInfo with the access token if you need the claims again.
- To sign the person out of ASL as well as your app, send them to the
end_session_endpointfrom the discovery document.
A worked example
Suppose ShopCo registers a server-side web app and receives the client ID asl-ext-shopco for the redirect URI https://shop.example.com/. Its sign-in link sends the person to https://login.autosecurelogin.com/ with these parameters, joined with &:
client_id | asl-ext-shopco |
|---|---|
redirect_uri | https://shop.example.com/, URL-encoded |
response_type | code |
scope | openid email profile |
state | a random value kept in the person's session |
nonce | a second random value kept in the session |
code_challenge | base64url of the SHA-256 of a random code_verifier |
code_challenge_method | S256 |
After the person allows ShopCo, ASL redirects to https://shop.example.com/. ShopCo's server checks state, then POSTs grant_type=authorization_code, the code, the same redirect_uri, its code_verifier, and its client_id and client_secret to the token endpoint. The response holds the ID token, an access token and, with offline_access, a refresh token. ShopCo stores sub as the account key and shows the person's name.
The button
Use this button, or your own that says Sign in with Auto Secure Login. Point it at your own route that starts the flow. Never link a static page straight to the authorize endpoint, because state, nonce and the PKCE challenge must be fresh for every sign-in.
A preview of the button (not a working sign-in link):
Sign in with Auto Secure Login
Copy the .asl-signin rules from asl-signin.css into your stylesheet, host a copy of asl-mark.svg, and use this markup with href pointing at your own route:
<a class="asl-signin" href="/auth/asl/login">
Add asl-signin--light to the class list on a light background. Do not imply that ASL endorses your app, and do not alter the mark.
Rules and limits
- Ask only for the scopes you use. Do not share what you receive with third parties without the person's consent, and delete it when they delete their account with you.
- ASL can disable an app at any time. That blocks new sign-ins and revokes its tokens.
- The
subvalue is the same for a given person across every outside app, so two apps could match their users. Treat it as personal data. email_verifiedis alwaysfalsetoday. An app that needs a verified address verifies it itself.- Registration, redirect URI changes, secret rotation and removal are handled by ASL on request; there is no developer console.
- Sign-in pages are offered in English and Spanish. Your app's own pages are yours.
The terms of service apply to the ASL account itself, and the security page explains how to report a concern.

Who it is for. A web app that wants a sign-in button without running its own password and 2-step system. A mobile, desktop or single-page app that cannot keep a secret and signs in as a public client with PKCE. A tool built for an organization that already uses ASL products.