leonardoakio/keycloak-client

Laravel应用程序的Keycloak客户端

1.0.0 2024-04-04 12:03 UTC

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

依赖关系

指南