You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.8 KiB
1.8 KiB
Casdoor SSO 单点登录 Skill
本 skill 提供在 Go + go-zero 项目中集成 Casdoor SSO 的完整指南和代码模板。
适用场景
- 需要统一身份认证的多系统环境
- 外部人员(监管、巡检、审计)需要访问系统
- 已有 Casdoor 身份中心,需要对接新系统
核心特点
- 支持本地用户 + Casdoor 用户混合模式
- 自动用户创建(JIT Provision)
- JWT Token 本地签发
- 美观的回调页面
快速开始
1. 安装依赖
go get github.com/casdoor/casdoor-go-sdk
go get github.com/golang-jwt/jwt/v5
2. 配置文件
Casdoor:
Endpoint: https://your-casdoor-domain.com
ClientId: your-client-id
ClientSecret: your-client-secret
Organization: your-org
Application: your-app
RedirectUrl: http://localhost:8888/api/v1/auth/callback
JwtPublicKey: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
JWT:
Secret: your-jwt-secret
Expire: 86400
3. 核心代码
- 配置结构 - Config 结构定义
- Casdoor 客户端 - SDK 封装
- JWT 处理 - Token 签发验证
- 回调逻辑 - 登录回调处理
- 用户模型 - GORM 用户模型
完整流程
- 前端请求
/api/v1/auth/login-url获取登录链接 - 用户跳转到 Casdoor 登录页面
- 登录成功后重定向到回调地址
- 后端处理回调,交换 Token,创建用户
- 返回本地 JWT Token
- 前端使用 Token 访问受保护接口
注意事项
- 生产环境必须使用 HTTPS
- JWT Secret 需要安全保管
- Casdoor 证书需要定期更新
- 建议使用 state 参数防止 CSRF