Download the PHP package alisafari-dev/laravel-keycloak-sso without Composer
On this page you can find all versions of the php package alisafari-dev/laravel-keycloak-sso. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download alisafari-dev/laravel-keycloak-sso
More information about alisafari-dev/laravel-keycloak-sso
Files in alisafari-dev/laravel-keycloak-sso
Package laravel-keycloak-sso
Short Description Keycloak SSO integration for Laravel with prefixed routes and Socialite.
License MIT
Informations about the package laravel-keycloak-sso
Laravel Keycloak SSO
پکیج Laravel برای اتصال Keycloak با Socialite و SocialiteProviders/Keycloak.
مسیرها با prefix ثبت میشوند تا با routeهای بقیه سرویسها یا ماژولهای پروژه تداخل نداشته باشند.
ویژگیها
- نصب خودکار
laravel/socialiteوsocialiteproviders/keycloak - ثبت خودکار درایور Keycloak در Socialite
- route، view و migration آماده
- prefix قابل تنظیم برای routeها (پیشفرض:
/sso) - sync کاربر محلی بر اساس claim قابل تنظیم (پیشفرض:
employeeID→personal_id) - logout کامل از Laravel و Keycloak
پیشنیازها
- PHP 8.3+
- Laravel 11 / 12 / 13
- یک سرور Keycloak در دسترس
نصب
۱. افزودن repository (اگر روی Packagist نیست)
در composer.json پروژه:
۲. نصب پکیج
وابستگیهای زیر بهصورت خودکار نصب میشوند:
laravel/socialitesocialiteproviders/keycloak
معماری
تنظیم Keycloak
در Clients → Create client (OpenID Connect, confidential):
| فیلد | مقدار نمونه |
|---|---|
| Client ID | laravel-app |
| Valid redirect URIs | http://your-host/sso/callback |
| Valid post logout redirect URIs | http://your-host/ |
| Root URL | http://your-host |
نکات:
KEYCLOAK_REDIRECT_URIباید دقیقاً با Valid redirect URIs یکی باشد.- post-logout معمولاً با
/انتهایی ثبت میشود:http://your-host/ - claim شناسه کاربر (پیشفرض
employeeID) باید در userinfo یا token mapper Keycloak موجود باشد.
متغیرهای محیطی
| متغیر | پیشفرض | توضیح |
|---|---|---|
KEYCLOAK_BASE_URL |
— | آدرس Keycloak بدون /realms/... |
KEYCLOAK_REALM |
master |
نام realm |
KEYCLOAK_CLIENT_ID |
— | Client ID |
KEYCLOAK_CLIENT_SECRET |
— | Secret کلاینت confidential |
KEYCLOAK_REDIRECT_URI |
— | باید با callback در Keycloak یکی باشد |
KEYCLOAK_POST_LOGOUT_REDIRECT_URI |
— | URI بازگشت بعد از logout |
KEYCLOAK_SSO_ROUTE_PREFIX |
sso |
prefix مسیرها |
KEYCLOAK_SSO_USER_IDENTIFIER_COLUMN |
personal_id |
ستون شناسه در جدول users |
KEYCLOAK_SSO_USER_IDENTIFIER_CLAIM |
employeeID |
claim در پاسخ Keycloak |
KEYCLOAK_SSO_REDIRECT_AFTER_LOGIN |
dashboard |
route name بعد از login |
KEYCLOAK_SSO_PLACEHOLDER_EMAIL_DOMAIN |
sso.local |
دامنه ایمیل موقت اگر email نباشد |
مسیرها
پیشفرض با prefix sso:
| Method | URI | Route name |
|---|---|---|
| GET | /sso/login |
keycloak-sso.login |
| GET | /sso/auth/keycloak |
keycloak-sso.redirect |
| GET | /sso/callback |
keycloak-sso.callback |
| POST | /sso/logout |
keycloak-sso.logout |
برای تغییر prefix:
آنگاه callback میشود: /auth/sso/callback — همان را در Keycloak ثبت کنید.
یکپارچهسازی با پروژه
۱. مدل User
ستون شناسه (از migration پکیج) و fillable:
۲. redirect مهمانها
در bootstrap/app.php:
۳. دکمه خروج
۴. (اختیاری) alias برای /login
اگر Breeze یا لینکهای قدیمی route('login') دارند:
سفارشیسازی
publish view
فایلها در resources/views/vendor/keycloak-sso/ قرار میگیرند.
تغییر claim شناسه
اگر بهجای employeeID از claim دیگری استفاده میکنید:
تغییر مدل User
رفع مشکل
Invalid redirect uri در login
KEYCLOAK_REDIRECT_URIرا با Valid redirect URIs در Keycloak مقایسه کنید.- پروتکل، host، port و مسیر باید دقیقاً یکی باشند.
Invalid redirect uri در logout
KEYCLOAK_POST_LOGOUT_REDIRECT_URIرا در Keycloak ثبت کنید.- معمولاً
http://host/(با/انتهایی) لازم است.
شناسه کاربر در اطلاعات Keycloak یافت نشد
- claim تنظیمشده (
employeeID) در userinfo Keycloak وجود ندارد. - در Keycloak برای client، mapper مناسب اضافه کنید یا
KEYCLOAK_SSO_USER_IDENTIFIER_CLAIMرا تغییر دهید.
NOT NULL constraint failed: users.email
- کاربر Keycloak email ندارد؛ پکیج برای کاربر جدید ایمیل
{username}@sso.localمیسازد. - اگر email اجباری است، در Keycloak برای کاربر email تنظیم کنید.
License
MIT
All versions of laravel-keycloak-sso with dependencies
illuminate/support Version ^11.0|^12.0|^13.0
laravel/socialite Version ^5.27
socialiteproviders/keycloak Version ^5.3