lyn-huang/laravel-cas-server

基于laravel实现的cas单点登录服务端

Maintainers

Package info

github.com/LynHuang/laravel-cas-server

pkg:composer/lyn-huang/laravel-cas-server

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 1

v1.0.0 2026-08-28 08:49 UTC

This package is auto-updated.

Last update: 2026-08-28 09:03:01 UTC


README

一个功能完整的 Laravel CAS (Central Authentication Service) 服务器扩展包,实现 SSO 单点登录SLO 单点登出,支持 CAS 1.0 / 2.0 / 3.0 协议。

✨ 功能特性

  • 🔐 SSO 单点登录 — 一次登录,多个应用共享会话
  • 🔄 SLO 单点登出 — 一处登出,处处登出(自动通知所有客户端)
  • 🎫 完整票据体系 — TGT / ST / PGT / PT,一次性防重放
  • 📦 协议支持 — CAS 1.0 / 2.0 / 3.0,JSON + XML 双响应格式
  • 🎨 高度可定制 — 自定义用户模型、登录逻辑、Blade 模板、属性释放
  • 🛡️ 安全内置 — service 白名单、SSRF 防御、登录锁定、SLO 死信

📋 环境要求

依赖 版本
PHP ^7.4 || ^8.0
Laravel ^8.0 || ^9.0 || ^10.0 || ^11.0
数据库 MySQL 5.7+ / MariaDB / SQLite / PostgreSQL

⚡ 快速安装

# 1. 安装
composer require lyn-huang/laravel-cas-server

# 2. 发布配置与视图
php artisan vendor:publish --provider="LynHuang\LaravelCasServer\CasServerServiceProvider"

# 3. 建表
php artisan migrate

# 4. 创建客户端应用
php artisan cas:create-client

MySQL 5.7 + utf8mb4 用户,请先在 AppServiceProvider::boot()Schema::defaultStringLength(191);

安装完成后访问 /cas/health 验证是否正常。

🚀 快速开始

  1. cas_clients 表注册你的应用(client_redirect = 登录回调地址)
  2. 应用检测未登录 → 跳转 GET /cas/login?service={回调地址}
  3. 用户登录 → CAS 带 ticket 重定向回回调地址
  4. 应用调用 GET /cas/serviceValidate?service=&ticket= 验证并获取用户

详细流程见下方文档。

⚠️ 注意:本包基于 CAS 协议,其登录方式不支持前后端分离(SPA / Vue / React / 移动端 / 小程序) —— 登录必须整页跳转到 CAS 服务器页面,且凭据只提交给 CAS 服务器,无法由前端 AJAX 代为登录。 这是 CAS 协议的设计限制,本包不计划修改。请先阅读 08 · 前后端分离架构说明 确认是否符合你的场景。

📚 使用文档

章节 内容
01 · 快速安装 环境要求、安装步骤、建表、创建客户端
02 · 配置解读 全部配置项说明 + .env 速查
03 · SSO 单点登录使用 SSO 流程、客户端接入、票据一次性、多应用同域
04 · SLO 单点登出 SLO 流程、登出回调实现、强制登出
05 · CAS 协议端点参考 全部端点 URL 与参数
06 · 自定义 模板 / 交互接口 / 用户模型 / 属性释放 / 事件
07 · 注意事项与故障排查 安全、部署、常见问题(Q&A)
08 · 前后端分离架构说明 ⚠️ 重要限制:CAS 不支持前后端分离登录
09 · 客户端接入指南 接入方视角:从准备到落地,含各语言要点与自检清单

📦 包结构

laravel-cas-server/
├── config/            # 配置文件
├── database/migrations/  # 数据表迁移
├── resources/views/   # Blade 模板
├── routes/            # 路由定义
├── src/               # 核心 PHP 代码
└── docs/              # 使用文档

📄 License

MIT