1. Go to this page and download the library: Download lghs/laravel-keycloak-guard library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
if (Gate::denies('keycloak', 'manage-account')) {
return abort(403);
}
if (Gate::denies('keycloak', ['manage-account'])) {
return abort(403);
}
if (Gate::denies('keycloak', 'manage-account', 'another-resource')) {
return abort(403);
}
$this->middleware('keycloak-roles:manage-something-cool');
// For multiple roles, separate with '|'
$this->middleware('keycloak-roles:manage-something-cool|manage-something-nice|manage-my-application');
// On RouteServiceProvider.php for example
Route::prefix('admin')
->middleware('keycloak')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
// Or with Route facade in another place
Route::group(['middleware' => 'keycloak'], function () {
Route::get('/admin', 'Controller@admin');
});
// On your EncryptCookies middleware
class EncryptCookies extends Middleware
{
protected $except = [];
public function __construct(EncrypterContract $encrypter)
{
parent::__construct($encrypter);
/**
* This will disable in runtime.
*
* If you have a "session.cookie" option or don't care about changing the app name
* (in another environment, for example), you can only add it to "$except" array on top
*/
$this->disableFor(config('session.cookie'));
}
}