公司的SSO采用CAS机制,机制说明:https://www.jianshu.com/p/083c0597e7e0
ant design pro接入SSO时,也踩了一些坑
一、应用服务端
服务端使用了spring boot,spring boot跟CAS的整合可以参考文档:https://blog.csdn.net/jw314947712/article/details/54236216
二、前端
这里有几个坑需要注意:
1、ajax请求返回SSO登录页面,需要修改跳转模式为手动跳转。
2、由于SSO域名与前端域名不同,ajax请求结果并不会出现302返回码。
修改utils下面的request.js文件,设置跳转模式为手动跳转
const defaultOptions = {
credentials: 'include',
redirect: 'manual',
mode: 'cors',
};
然后在response里面拦截
const checkStatus = response => {
if (response.type === 'opaqueredirect') {
window.location.href='https://cas.XXX';
}
if (response.status >= 200 && response.status < 300) {
return response;
}
const errortext = codeMessage[response.status] || response.statusText;
notification.error({
message: `请求错误 ${response.status}: ${response.url}`,
description: errortext,
});
const error = new Error(errortext);
error.name = response.status;
error.response = response;
throw error;
};