单点登录前端说明
单点登录前端说明
1. 配置 ipconfige.json
添加:
"singleloginIp":"http://192.168.1.108:8080/", //单点登录 ip
"singlelogin":false //是否执行单点登录,否的话调用原来的登录地址
2. 修改 getipconfig.js 文件
添加:
swurl.singleloginIp=data.singleloginIp; swurl.singlelogin=data.singlelogin;
3. 登录页面引入相应文件
import { SingleAjax} from '../../public/singleAjax'; //jsonp 请求数据
import { Encrypt } from '../../public/aes';
const publicKey = "qwertyuiop[]asdf" //密码加密处理 const wkUrl = getip.serverip; //系统对应的服务器地址 const singleUrl = getip.singleloginIp; //单点服务器地址
const SingleLogin=getip.singlelogin; //是否单点登录 bool
const sysid="JLHDcb3459f0eee2c571b943573ae3a11504664108" //系统 id
4. 页面加载时候判断处理
判断是否执行单点登录
True:执行单点登录
1.获取 token 判断是否已有子系统登录
Leturl=singleUrl+"cas/login"+"?service="+encodeURIComponent(wkUrl+"validlogin"+"/
")
SingleAjax('get',url,'',"getUserInfo",(e)=>{
//如果已有子系统登录自动会执行下面方法,否则点击按钮
登录
let data={systemId:sysid} //系统 id let murl=wkUrl+"validlogin/user"
SingleAjax('get',murl,data,"jsonpcallback",e=>{
此处返回用户信息并相应处理
})
})
5. 点击按钮登录
判断是否单点登录
True:执行单点登录
let url=singleUrl+"cas/login"+"?mode=rlogin&service="+wkUrl+"sso/login"; SingleAjax('get',url,'',"jsonpcallback",(e)=>{ let lgdata={ username:data.username, password:Encrypt(data.pws, publicKey),//密码加密处理 lt:e.lt, execution:e.execution,
_eventId: "submit"
}
let loginurl=singleUrl+"cas/login"
SingleAjax('post',loginurl,lgdata,"logincallback",(e)=>{ if(e.ret==0){
this.getToken() //ret=0 之后重新执行第四步获取 token 方法
}
}
)})
False:执行普通登录 //保留以前登录方式
6.