bhry98/keycloak-laravel-auth
Composer 安装命令:
composer require bhry98/keycloak-laravel-auth
包简介
Laravel Keycloak authentication via Socialite
README 文档
README
A modern Laravel authentication package that integrates Keycloak using Laravel Socialite for both API and Filament panel authentication.
Built for enterprise-grade Laravel apps needing Keycloak SSO integration.
🚀 Features
- ✅ Keycloak authentication using Socialite
- ✅ Works for APIs (JWT-based) and Filament panels
- ✅ Auto-refresh Keycloak tokens
- ✅ Role-based access via
HasKeycloakRolestrait - ✅ Middleware protection for routes
- ✅ Extendable service structure (OIDC, JWT, and Socialite)
- ✅ Plug-and-play with any Laravel app
📦 Installation
Step 1: Install the package
composer require bhry98/keycloak-laravel-auth
Step 2: Publish config file
php artisan vendor:publish --provider="Bhry98\KeycloakAuth\Providers\KeycloakAuthServiceProvider" --tag="config"
This will create a config file:
config/bhry98-keycloak.php
Step 3: Add Keycloak credentials to .env
KEYCLOAK_BASE_URL=https://keycloak-domain KEYCLOAK_REALM=your-realm-id KEYCLOAK_CLIENT_ID=your-client-id KEYCLOAK_CLIENT_SECRET=your-client-secret KEYCLOAK_REDIRECT_URI=${APP_URL}/auth/callback
Step 4: Register in Filament (optional)
->authMiddleware([ \Bhry98\KeycloakAuth\Http\Middleware\KeycloakMiddleware::class, ])
🔐 Middleware Usage
You can protect routes for both API and Web like this:
// web Route::middleware(['keycloak.web'])->group(function () { Route::get('/user', function (Request $request) { return $request->user(); }); }); // api Route::middleware(['keycloak.api'])->group(function () { Route::get('/user', function (Request $request) { return $request->user(); }); });
For API frontends, use token-based auth:
Authorization: Bearer <access_token>
🧱 Middleware
KeycloakMiddleware => keycloak.web— checks for valid Keycloak access tokens basen on web sessionKeycloakApiMiddleware => keycloak.api— checks for valid Keycloak access tokens basen on api
🧠 Example Login Flow
Web (Filament)
- User clicks Login with Keycloak
- Redirects to Keycloak
- Keycloak returns
code→ package exchanges it for tokens - Laravel authenticates the user
API (Frontend)
- Frontend gets tokens via Keycloak
- Sends
Authorization: Bearer <token>with requests - Middleware validates and identifies the user
🧩 Folder Structure
src/
├── config/
│ └── bhry98-keycloak.php
├── Http/
│ ├── Controllers/
│ │ └── KeycloakAuthController.php
│ └── Middleware/
│ ├── KeycloakApiMiddleware.php
│ └── KeycloakMiddleware.php
├── Providers/
│ └── KeycloakAuthServiceProvider.php
├── routes/
│ └── web.php
└── Services/
├── KeycloakJWTService.php
└── KeycloakSocialiteProvider.php
💡 Example .env Setup for API + Filament
APP_URL=https://your-laravel-application-domain KEYCLOAK_BASE_URL=https://keycloak-domain KEYCLOAK_REALM=your-realm-id KEYCLOAK_CLIENT_ID=your-client-id KEYCLOAK_CLIENT_SECRET=your-client-secret KEYCLOAK_REDIRECT_URI=${APP_URL}/auth/callback
🧑💻 Author
BHR Abdelrahman
💼 GitHub: @bhry98
📄 License
This package is open-sourced software licensed under the MIT license.
bhry98/keycloak-laravel-auth 适用场景与选型建议
bhry98/keycloak-laravel-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 298 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 bhry98/keycloak-laravel-auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 bhry98/keycloak-laravel-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 298
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-22