hansdeboeck / socialite-exactonline
Exact Online OAuth2 Provider for Laravel Socialite
Package info
github.com/hansdeboeck/socialite-exactonline
pkg:composer/hansdeboeck/socialite-exactonline
Requires
- php: ^8.3
- ext-json: *
- socialiteproviders/manager: ^4.10
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-21 15:01:27 UTC
README
Exact Online als OAuth2-provider voor Laravel Socialite. Hiermee zet je een "aanmelden met Exact Online" in een applicatie: de klant meldt zich aan bij Exact zelf, en je krijgt zijn gebruiker, zijn administratie en een token terug.
Requirements
- PHP 8.3 of hoger
- Laravel 12 of 13
- laravel/socialite 5 met socialiteproviders/manager 4
Laravel 11 wordt niet meer ondersteund: die versie is sinds 12 maart 2026 volledig end-of-life, ook voor security fixes.
Installatie
composer require hansdeboeck/socialite-exactonline
De service provider van socialiteproviders/manager wordt automatisch ontdekt. Er
is niets toe te voegen aan bootstrap/providers.php.
De provider aanhaken
In de boot() van app/Providers/AppServiceProvider.php:
use HansDeBoeck\SocialiteExactonline\ExactonlineExtendsSocialite; use Illuminate\Support\Facades\Event; use SocialiteProviders\Manager\SocialiteWasCalled; public function boot(): void { Event::listen(SocialiteWasCalled::class, ExactonlineExtendsSocialite::class); }
Configuratie
In config/services.php:
'exactonline' => [ 'client_id' => env('EXACTONLINE_CLIENT_ID'), 'client_secret' => env('EXACTONLINE_CLIENT_SECRET'), 'redirect' => env('EXACTONLINE_CALLBACK_URL'), 'base_url' => env('EXACTONLINE_BASE_URL'), ],
En in .env:
EXACTONLINE_CLIENT_ID=
EXACTONLINE_CLIENT_SECRET=
EXACTONLINE_CALLBACK_URL=https://jouw-app.be/auth/exactonline/callback
EXACTONLINE_BASE_URL=https://start.exactonline.be
Het land staat in het adres
Exact draait per land op een eigen domein. base_url bepaalt waar zowel de
aanmelding als de token-uitwisseling naartoe gaan:
| Land | base_url |
|---|---|
| Belgie | https://start.exactonline.be |
| Nederland | https://start.exactonline.nl |
| Duitsland | https://start.exactonline.de |
| VK | https://start.exactonline.co.uk |
Laat je base_url weg, dan gebruikt de provider het Belgische adres.
Gebruik
use Laravel\Socialite\Facades\Socialite; Route::get('/auth/exactonline', fn () => Socialite::driver('exactonline')->redirect()); Route::get('/auth/exactonline/callback', function () { $user = Socialite::driver('exactonline')->user(); $user->getId(); // UserID $user->getName(); // FullName $user->getEmail(); // Email $user->getAvatar(); // PictureUrl $user->token; // toegangstoken, tien minuten geldig $user->refreshToken; // verversing, dertig dagen geldig $user->expiresIn; $user->getRaw()['CurrentDivision']; // de administratie waarin hij zit });
Verversen gaat via Socialite zelf:
$token = Socialite::driver('exactonline')->refreshToken($refreshToken);
Elke verversing bij Exact maakt de vorige ongeldig, dus schrijf de nieuwe weg in dezelfde transactie waarin je ze gebruikt.
Upgraden naar 1.0
De namespace is veranderd. Vervang in je applicatie Michielfb\SocialiteExactonline\
(0.1.x) of DeboeckDEV\SocialiteExactonline\ (master voor 1.0) door
HansDeBoeck\SocialiteExactonline\.
Verder in deze versie:
- PHP 8.3 en Laravel 12 of 13 zijn de ondergrens.
Provider::IDENTIFIERisEXACTONLINEin plaats vanexactonline. De naam van de driver en de sleutel inconfig/services.phpblijvenexactonline.base_urlstuurt nu ook de token-uitwisseling. Wie op een ander land dan Belgie zat, kreeg de aanmelding wel op het juiste domein, maar het token nog altijd vanstart.exactonline.be.- Het registreren via
EventServiceProvideren het weghalen van de standaardSocialiteServiceProvideruitconfig/app.phpzijn vervallen: haak aan metEvent::listenen laat auto-discovery de rest doen.
Licentie
MIT.