taufik-t / sso-client
A Single Sign-On (SSO) client package utilizing OAuth2
3.1.5
2024-05-21 10:23 UTC
Requires
- php: >=7.0.0
- illuminate/session: >=5.0
This package is auto-updated.
Last update: 2024-05-21 10:24:24 UTC
README
Integrate Laravel Framework with Single Sign-On (SSO) Client using OAuth2.
Install
composer require taufik-t/sso-client
.env
SSO_CLIENT_ID="9a490422-0cdb-48bb-8ea4-c816786089f4"
SSO_CLIENT_SECRET="VNj0KAWJp2IfSlk2c7L67jdrPPhc0apMZVgDiSxs"
SSO_CLIENT_CALLBACK="http://app.client.com/oauth2/callback"
SSO_CLIENT_ORIGIN="http://app.client.com"
SSO_SCOPES=""
SSO_HOST="http://sso.server.com"
SSO_HOST_LOGOUT="http://sso.server.com/logout"
Publish config
php artisan vendor:publish --provider="TaufikT\SsoClient\SSOServiceProvider"
config/app.php
'providers' => ServiceProvider::defaultProviders()->merge([
// ...
TaufikT\SsoClient\SSOServiceProvider::class,
])->toArray(),
app/Http/Kernel.php
protected $middlewareAliases = [
// ...
'sso.auth' => \TaufikT\SsoClient\Http\Middleware\Authenticate::class,
'sso.guest' => \TaufikT\SsoClient\Http\Middleware\RedirectIfAuthenticated::class,
'sso.role' => \TaufikT\SsoClient\Http\Middleware\RoleMiddleware::class,
];
Middleware via Routes
Route::group(['middleware' => ['sso.auth']], function () {
// authenticated users only
});
Route::group(['middleware' => ['sso.guest']], function () {
// unauthenticated users only
});
Route::group(['middleware' => ['sso.role:user']], function () {
// users with specified role only
});
Route::group(['middleware' => ['sso.role:user|admin|manager']], function () {
// users with specified roles only
});
Middleware with Controllers
public function __construct()
{
$this->middleware(['sso.role:super-admin']);
}
Blade directives
@ssoRole('admin')
<a href="{{ url('/admin') }}">Admin</a>
@endSsoRole
@ssoRole('user|admin')
<a href="{{ url('/home') }}">Home</a>
@endSsoRole
Logout URL
<a href="{{ route('oauth2.logout') }}">Logout</a>