0%
SP1KYDEVELOPER DOCS

SP1KY IDENTITY / v1

SP1KY Login

OAuth 2.0 für SP1KY-Konten. Deine App erhält Name und E-Mail, ohne das Passwort des Nutzers zu sehen.

Base URLhttps://spiky.top
Du brauchst zuerst ein Konto. Konto erstellen

01 / START

Quickstart

  1. App registrierenLege Name und exakte Redirect-URL in der Developer Console an.
  2. Nutzer weiterleitenSende den Browser mit state zum Authorize-Endpunkt.
  3. Code tauschenTausche den einmaligen Code ausschließlich in deinem Backend.
  4. Profil lesenRufe Userinfo mit dem Access Token ab.

02 / ENDPOINT

Authorize

Öffnet die SP1KY-Zustimmung. Die Redirect-URL muss exakt mit der registrierten URL übereinstimmen.

GET/oauth/authorize
const authorize = new URL('https://spiky.top/oauth/authorize');
authorize.search = new URLSearchParams({
  response_type: 'code',
  client_id: process.env.SP1KY_CLIENT_ID,
  redirect_uri: 'https://deine-app.de/auth/spiky',
  scope: 'profile email',
  state: crypto.randomUUID()
});
window.location.assign(authorize);

03 / ENDPOINT

Token

Der Authorization Code ist kurzlebig und einmalig. Tausche ihn serverseitig gegen ein Access Token.

POST/api/oauth/token
const response = await fetch('https://spiky.top/api/oauth/token', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({
    grant_type: 'authorization_code',
    code,
    client_id: process.env.SP1KY_CLIENT_ID,
    client_secret: process.env.SP1KY_CLIENT_SECRET,
    redirect_uri: 'https://deine-app.de/auth/spiky'
  })
});
const token = await response.json();

04 / ENDPOINT

Userinfo

Liest die freigegebenen Profildaten des angemeldeten Kontos.

GET/api/oauth/userinfo
const user = await fetch('https://spiky.top/api/oauth/userinfo', {
  headers: { authorization: `Bearer ${token.access_token}` }
}).then(response => response.json());

// { sub, name, email }

05 / REFERENCE

Scopes

profileStabile Konto-ID und Anzeigename
emailVerifizierte E-Mail-Adresse

06 / WEBAUTHN

Passkeys

SP1KY unterstützt Passkeys für phishing-resistente Anmeldung mit Touch ID, Face ID oder Sicherheitsschlüssel. Registrierung erfolgt nach Login über deine Kontoeinstellungen; deine App erhält niemals biometrische Daten.

POST/api/auth/passkey

07 / ACCOUNT

Register API

Neue Konten werden mit Cloudflare Turnstile gegen automatisierte Registrierungen geschützt. Sende den Token aus dem Widget zusammen mit Name, E-Mail und Passwort an den Endpunkt.

POST/api/auth/register

06 / SECURITY

Sicherheit

  • state vor und nach dem Redirect vergleichen.
  • Client Secret nur im Backend speichern.
  • In Produktion ausschließlich HTTPS verwenden.
  • Redirect-URLs exakt prüfen und niemals aus Nutzereingaben übernehmen.

07 / ERRORS

Fehler

invalid_clientClient-ID oder Secret stimmt nicht.
invalid_grantCode ist abgelaufen oder bereits verwendet.
invalid_redirect_uriRedirect-URL weicht von der Registrierung ab.