FlexiD
FlexiD
FlexiD Integratie
Koppel jouw website met FlexiD SSO
Handleiding voor ontwikkelaars

FlexiD op jouw website

Met FlexiD bied je jouw gebruikers één centrale login voor al je projecten. Op deze pagina vind je de stappen, voorbeeldcode en downloads om FlexiD snel te integreren.

1. Site registreren in FlexiD

  1. Log in op je FlexiD account.
  2. Ga naar Sites en klik op Site toevoegen.
  3. Vul Naam, Domein en Callback URL in, bijv. https://jouwdomein.nl/flexid/callback.
  4. Na opslaan krijg je een Client ID en Client secret. Bewaar deze veilig.

2. Login-knop op je website

Plaats op je eigen website een "Login via FlexiD" knop. Deze stuurt de gebruiker naar jouw eigen loginpagina of activeert jouw backend die FlexiD aanroept.

<a href="/login-flexid" class="flexid-login-btn">
  <span>Login via FlexiD</span>
</a>
  

In je route /login-flexid op je eigen server roep je FlexiD aan (zie stap 3) en log je de gebruiker op jouw systeem in op basis van de teruggegeven gegevens.

3. Token ophalen bij FlexiD (PHP-voorbeeld)

Gebruik de /api/sso/token endpoint om met jouw Client ID en Client secret een JWT-token op te halen voor een gebruiker (geïdentificeerd door e-mailadres of gebruikersnaam).

<?php
$endpoint = 'https://flexapi.nl/api/sso/token';

$postData = [
  'client_id'     => 'JOUW_CLIENT_ID',
  'client_secret' => 'JOUW_CLIENT_SECRET',
  'user'          => 'email-of-gebruikersnaam',
];

$ch = curl_init($endpoint);
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => http_build_query($postData),
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode !== 200) {
  die('FlexiD error: ' . $response);
}

$data = json_decode($response, true);
$jwt  = $data['access_token'] ?? null;
  

4. JWT verwerken in je callback

In je eigen callback (bijv. /flexid/callback) gebruik je het ontvangen JWT om de gebruiker te identificeren en automatisch in te loggen in jouw applicatie.

function jwtPayload(string $jwt): array {
  $parts = explode('.', $jwt);
  $payload = $parts[1] ?? '';
  return json_decode(base64_decode(strtr($payload, '-_', '+/')), true) ?: [];
}

$claims = jwtPayload($jwt);
// Voorbeeld: $claims['sub'], $claims['email'], $claims['username'] gebruiken
// om een lokale gebruiker te vinden of aan te maken en in te loggen.
  

5. Downloads

Download het kant-en-klare PHP-clientvoorbeeld en pas het aan naar jouw situatie.

Voorbeeld "Login via FlexiD" knop

Onderstaand voorbeeld laat zien hoe een login-knop eruit kan zien op jouw site:

<a href="/login-flexid" class="flexid-login-btn">
  <i class="fas fa-right-to-bracket"></i>
  <span>Login via FlexiD</span>
</a>
  

Pas de URL /login-flexid aan naar jouw eigen route die FlexiD aanroept.