PHP / Laravel (Socialite)

BeID werkt met elke OAuth2/OIDC-client voor PHP. Hieronder met Laravel Socialite en de generieke provider socialiteproviders/generic-oauth.

1. Installeren

Terminal
composer require laravel/socialite socialiteproviders/generic-oauth

2. Configuratie

config/services.php
'beid' => [
    'client_id' => env('BEID_CLIENT_ID'),
    'client_secret' => env('BEID_CLIENT_SECRET'),
    'redirect' => 'https://jouw-app.nl/auth/beid/callback',
    'host' => 'https://id.becyber.nl',
    'authorize_url' => 'https://id.becyber.nl/oauth/authorize',
    'token_url' => 'https://id.becyber.nl/oauth/token',
    'userinfo_url' => 'https://id.becyber.nl/oauth/userinfo',
],

3. Routes

routes/web.php
use Laravel\Socialite\Facades\Socialite;

Route::get('/auth/beid', fn () =>
    Socialite::driver('beid')->scopes(['openid', 'profile', 'email', 'kyc'])->redirect()
);

Route::get('/auth/beid/callback', function () {
    $beidUser = Socialite::driver('beid')->user();
    // $beidUser->getId(), ->getEmail(), ->getName()
    // Groepen/KYC uit de raw claims:
    $groups = $beidUser->user['groups'] ?? [];
    $kyc = $beidUser->user['kyc_status'] ?? 'not_started';
    // ... log de gebruiker in / maak aan ...
    return redirect('/');
});

Tip

Socialite gebruikt de Authorization Code-flow. Zet PKCE aan waar de provider dat ondersteunt, en valideer altijd het ID-token. Voor strikte OIDC-naleving kun je ook jumbojett/openid-connect-php gebruiken.
BeID met PHP / Laravel (Socialite) — BeID Documentatie · BeID