一、介绍
CAS 是中央认证服务(Central Authentication Service)的缩写,是一种单点登录协议。它允许用户只需一次登录即可访问多个不同应用程序或网站,而无需在每个应用程序中单独登录。CAS 通过在用户登录时颁发票据(ticket),然后应用程序使用该票据来验证用户身份,实现单点登录功能。
二、CAS相关参数维护
后台新增登录参数
1)描述字段一定要填cas的服务器地址!
例如:
http://127.0.0.1:8080/cas
2)回调地址一定要和前端地址保持一致!
例如:
http://localhost:8888?state=CAS-LOGIN/#/authredirect
三、实战
1)docker搭建 CAS 服务
因为8080被占用了所以运行如下:
docker run -d --name cas5 -p 8081:8080 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/cas:latest
2)进入容器查看CAS的配置文件
3)后台新增cas配置参数,登陆后台后找到密钥管理。
因为测试appId Secret任意、描述字段为cas中央服务器,回调地址如下:
http://${ip}:8888/#/admin/client/index?state=CAS-LOGIN/#/authredirect
cas中央服务器配置文件中的用户和系统保持一致
4)前端登录页面增加 CAS 登录
前端登录页 social.vue 增加 CAS 登录按钮跳转地址为:
// 测试cas
if (thirdpart === SocialLoginEnum.CAS) {
let returnURL = encodeURIComponent('http://10.168.131.19:8888/#/admin/client/index?state=CAS-LOGIN/#/authredirect')
url = `http://10.168.1.44:8081/cas/login?service=${returnURL}`;
}
5)测试登陆
登陆后进入回调页地址,可以直接访问