Looking to hire Laravel developers? Try LaraJobs

laravel-cas-server maintained by lyn-huang

Description
基于laravel实现的cas单点登录服务端
Author
Last update
2026/08/30 13:03 (dev-master)
License
Links
Downloads
0
Tags

Comments
comments powered by Disqus

Laravel CAS Server

一个功能完整的 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 双响应格式
  • 🎨 高度可定制 — 自定义用户模型、页面模板、属性释放、交互接口
  • 🛡️ 安全内置 — 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 协议为多个已有系统提供 SSO/SLO。
任何 Web 应用(SPA / SSR / 移动端 webview)都可接入,只要能整页跳转。
接入方应用保持自己的用户体系,本包只做"认证网关",不替换用户表/Token。
详情看 08 · 接入方式与适用场景。

📚 使用文档

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

📦 包结构

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

📄 License

MIT