Синапсия Документация
К быстрому старту

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);