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.
https://jouwdomein.nl/flexid/callback.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.
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;
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.
Download het kant-en-klare PHP-clientvoorbeeld en pas het aan naar jouw situatie.
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.