leonardoakio / keycloak-client
Laravel应用程序的Keycloak客户端
1.0.0
2024-04-04 12:03 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.2
This package is auto-updated.
Last update: 2024-09-04 13:13:32 UTC
README
Simple Keycloak Client para Laravel
此包用于实现与Keycloak主机通信和认证的多种grant_types
的包装实现
启动项目
将包require到项目中的vendor
文件夹内
composer require leonardoakio/keycloak-client
如果已安装,更新包以检查是否有新版本
composer update leonardoakio/keycloak-client
在config/app.php
文件中添加provider,以便在非vendor上下文中识别KeycloakClientServiceProvider
KeycloakClient\KeycloakClientServiceProvider::class
生成lib中需要发布的文件
php artisan vendor:publish --tag=keycloak-resources
我们还可以直接执行Provider
php artisan vendor:publish --provider="KeycloakClient\KeycloakClientServiceProvider.php"
将生成的路由文件配置添加到app/Providers/RouteServiceProvider.php
文件中的boot
函数
$this->configureRateLimiting(); $this->routes(function () { ... Route::middleware('keycloak') ->prefix('api') ->group(__DIR__.'/../routes/keycloak.php'); }
添加ENV KEYCLOAK_DIRECT_GRANT_HOST
,这是Keycloak在生态系统中的域名,用于从应用程序访问Keycloak服务
KEYCLOAK_DIRECT_GRANT_HOST=http://keycloak:8080
在KeycloakClientsEnum
文件中更改常量的值以匹配Keycloak认证客户端的名称
const CLIENT_ID = 'template-client';
在KeycloakRealmsEnum
文件中更改常量的值以匹配Keycloak认证实体的名称
const AUTH_REALM = 'template_realm';
结构
├── routes/ # Rotas de autenticação do Keycloak ├── src/Controllers # Controladores que irão lidar com as rotas ├── src/Enums # Lista de elementos ├── src/Repositories # Classe de comunicação com o Keyclaok ├── composer.json # Listar as dependências do projeto e suas versões