Se connecter avec Louk.it

Louk.it agit comme fournisseur OAuth 2.0 (authorization code). Un compte Louk.it = connexion ou inscription sur vos apps (Spinly, Lyaly, etc.).

Endpoints

Flux

  1. Rediriger l'utilisateur vers /oauth/authorize avec client_id, redirect_uri, response_type=code, scope=openid profile email, state.
  2. Login ou inscription sur Louk.it si besoin, puis autorisation.
  3. Échanger code contre access_token (POST /oauth/token).
  4. Lire le profil via /oauth/userinfo.

Exemple authorize (PHP)

$params = http_build_query([
  'client_id' => LOUK_CLIENT_ID,
  'redirect_uri' => 'https://votre-app.com/auth/louk/callback',
  'response_type' => 'code',
  'scope' => 'openid profile email',
  'state' => bin2hex(random_bytes(16)),
]);
header('Location: https://louk.it/oauth/authorize?' . $params);

Exemple token (PHP)

$ch = curl_init('https://louk.it/oauth/token');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => http_build_query([
    'grant_type' => 'authorization_code',
    'code' => $_GET['code'],
    'client_id' => LOUK_CLIENT_ID,
    'client_secret' => LOUK_CLIENT_SECRET,
    'redirect_uri' => 'https://votre-app.com/auth/louk/callback',
  ]),
  CURLOPT_RETURNTRANSFER => true,
]);
$tokens = json_decode(curl_exec($ch), true);

NextAuth (Spinly)

import { LoukProvider } from "@/lib/providers/louk";
// providers: [LoukProvider(), Google(...), Discord(...)]

Clients et secrets : générés par php scripts/seed_platform.php → fichier data/oauth_clients.secrets.json (non versionné).

← Retour Louk.it