eganesha/cas-auth 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 eganesha/cas-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 392
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-29