eganesha/cas-auth
Composer 安装命令:
composer require eganesha/cas-auth
包简介
Laravel CAS Authentication integration for SSO Undiksha
README 文档
README
Package ini menyediakan integrasi Single Sign-On (SSO) dengan Central Authentication Service (CAS) untuk aplikasi berbasis Laravel.
Didesain agar mudah digunakan, ringan, dan bisa diintegrasikan dengan CAS server seperti https://sso.undiksha.ac.id/cas.
🚀 Instalasi
Tambahkan package ini menggunakan Composer:
composer require eganesha/cas-auth
⚙️ Konfigurasi
Publikasikan file konfigurasi:
php artisan vendor:publish --provider="EGanesha\CasAuth\CasServiceProvider"
Tambahkan URL server CAS di file .env:
CAS_SERVER_URL=https://sso.undiksha.ac.id/cas
🧩 Penggunaan
Tambahkan middleware cas.auth ke route Anda:
<?php use EGanesha\CasAuth\Facades\Cas; use Illuminate\Support\Facades\Route; // MENGGUNAKAN MIDDLEWARE // VALIDASI OTOMATIS. SECARA OTOMATIS AKAN DIARAHKAN KE HALAMAN LOGIN SSO JIKA BELUM TERAUTENTIKASI Route::middleware(['cas.auth'])->group(function () { Route::get('/dashboard', function () { $emailAtauUsername = Cas::getCurrentUser(); return "Halo, " . $emailAtauUsername; }); Route::get('/logout', function () { return Cas::logoutAndRedirect(url('/')); }); });
🚪 Login CAS & Handle Sesi Manual Untuk melakukan redirect ke login ke server cas:
use EGanesha\CasAuth\Facades\Cas; use Illuminate\Support\Facades\Route; Route::get('/login-sso', function () { return Cas::redirectToLogin(url('/profile')); }); // TANPA MIDDLEWARE // VALIDASI MANUAL Route::get('/profile', function () { $ticket = request('ticket'); $serviceUrl = url('/profile'); if ($ticket && Cas::validateTicket($ticket, $serviceUrl)) { Cas::storeCasUserInSession(); return redirect($serviceUrl); } // Jika sudah terautentikasi if (Cas::isAuthenticated()) { $user = Cas::getCurrentUser(); return "Halo, " . $user; } return 'Gagal autentikasi'; });
🚪 Logout CAS
Untuk melakukan logout dari CAS dan menghapus sesi:
use EGanesha\CasAuth\Facades\Cas; use Illuminate\Support\Facades\Route; Route::get('/logout', function () { Cas::logoutAndRedirect(); });
🧠 Metode yang Tersedia
Cas::redirectToLogin($serviceUrl) Redirect user ke halaman login CAS dengan parameter service. Cas::validateTicket($ticket, $serviceUrl) Memvalidasi tiket CAS yang diterima setelah login. Cas::storeCasUserInSession() Menyimpan informasi user dan atribut ke sesi Laravel. Cas::isAuthenticated() Mengecek apakah user sudah login melalui CAS. Cas::getCurrentUser() Mengambil username/email user dari sesi CAS. Cas::getAttributes() Mengambil seluruh atribut user dari CAS (misal: nama, email, role, dsb). Cas::logout() Menghapus sesi CAS di aplikasi lokal tanpa logout dari CAS server. Cas::getLogoutUrl($redirectUrl = null) Mendapatkan URL logout CAS server (dapat ditambahkan parameter service). Cas::logoutAndRedirect($redirectUrl = null) Menghapus sesi lokal dan langsung redirect ke halaman logout CAS server.
eganesha/cas-auth 适用场景与选型建议
eganesha/cas-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 392 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 eganesha/cas-auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 eganesha/cas-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 392
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-29