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

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. 核心代码

完整流程

  1. 前端请求 /api/v1/auth/login-url 获取登录链接
  2. 用户跳转到 Casdoor 登录页面
  3. 登录成功后重定向到回调地址
  4. 后端处理回调,交换 Token,创建用户
  5. 返回本地 JWT Token
  6. 前端使用 Token 访问受保护接口

注意事项

  • 生产环境必须使用 HTTPS
  • JWT Secret 需要安全保管
  • Casdoor 证书需要定期更新
  • 建议使用 state 参数防止 CSRF

参考