← К быстрому старту
Vanilla JavaScript
Fetch API без фреймворка.
const API = 'https://auth.synapsea.agency/api/v1/auth';
const KEY = 'sa_live_xxxxxxx';
document.getElementById('btn-google')!.onclick = async () => {
const r = await fetch(API + '/sign-in/social', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-Synapsea-Key': KEY },
body: JSON.stringify({
provider: 'google',
method: 'oauth',
callbackURL: location.origin + '/callback.html',
}),
});
const { url } = await r.json();
location.href = url;
};Страница после OAuth
// callback.html — после редиректа с провайдера
const code = new URLSearchParams(location.search).get('sa_code');
const r = await fetch(API + '/exchange-code', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-Synapsea-Key': KEY },
body: JSON.stringify({ code }),
});
const { token, user } = await r.json();
localStorage.setItem('sa_token', token);