Let your users sign in
with their Oasis identity
One button. Full access to character profiles, worlds, and DCOS documents — with user consent.
Already have an app? Sign in to manage it
The Button
Familiar. Trustworthy. One copy-paste away.
Preview only
oasis_logo.svg
Official OAuth logo · SVG
<img src="https://oasisbio.oasiscompany.org/assets/oasis_logo.svg" ... /> Continue with Oasis
Three steps to integrate
From zero to working OAuth in under 30 minutes.
Register your app
Create an OAuth app in the developer portal. Get your client_id instantly.
Create App →Add the button
Copy the HTML, React, or JavaScript snippet and drop it into your login page.
View Snippets →Access user data
Use the access token to fetch profile, characters, worlds, and DCOS documents.
See API Docs →Code Snippets
Pick your stack and copy.
import Image from 'next/image';
function ContinueWithOasis({ clientId, redirectUri }: { clientId: string; redirectUri: string }) {
const handleClick = async () => {
const codeVerifier = generateRandomString(64);
const codeChallenge = await base64url(sha256(codeVerifier));
sessionStorage.setItem('pkce_verifier', codeVerifier);
const url = new URL('https://oasisbio.oasiscompany.org/oauth/authorize');
url.searchParams.set('client_id', clientId);
url.searchParams.set('redirect_uri', redirectUri);
url.searchParams.set('response_type', 'code');
url.searchParams.set('scope', 'profile email');
url.searchParams.set('state', generateRandomString(16));
url.searchParams.set('code_challenge', codeChallenge);
url.searchParams.set('code_challenge_method', 'S256');
window.location.href = url.toString();
};
return (
<button onClick={handleClick} style={{ display:'inline-flex', alignItems:'center', gap:10,
padding:'10px 20px', background:'#000', color:'#fff', borderRadius:8,
border:'none', cursor:'pointer', fontSize:15, fontWeight:500 }}>
<Image src="https://oasisbio.oasiscompany.org/assets/oasis_logo.svg" width={20} height={17} alt="Oasis" />
Continue with Oasis
</button>
);
}Available Scopes
Request only what you need. Users see exactly what they're granting.
profileusername, display name, avatar URL
emailemail address
oasisbios:readcharacter list (title, slug, cover image)
oasisbios:fullfull character data (abilities, worlds, eras, references)
dcos:readDCOS document content