事先说明我讲的只是其中的一种登录方式,这种登录方式只是提供一种参考(真是案例)
-
首先输入网址
输入网址后就进入到一个登录页面,这个登录页面是其他人负责的一个系统,输入账号密码之后,如果验证通过,就会跳转到我们自己的页面,我们的页面发送一个地址给后端,然后后端就进行SSO鉴权。SSO鉴权,就是当我们登录到A系统成功之后,A系统给B系统一个ticket(票据),通过对这个票据的验证,验证成功,就可以登录B系统。
-
SSO鉴权的具体流程步骤
1.对ticket(票据)进行验证
①对票据进行解密
对票据解密的目的就是为了证明另一个系统是否验证通过了,需要后端有对应的秘钥才能完成解密,如果未解密成功,就需要重新登陆。
②对票据在进行加密
对票据进行重新加密是为了调用另一个系统的信息,对其加密也需要对应的签名,另一个系统有对应的秘钥,这样另一个系统才能解密成功,并把想要调用的信息提供出来。
2. 调用其他系统信息当完成了对票据的验证会重新生成一个票据,这个票据以及存在后端的其他标识,共同作为参数,通过okHttp.doPost调用url(储存在后端的),得到对应的结果,一个String串。
3. 信息验证通过JSON.parseObject,将得到的结果转化成一个类,这个类中装载了我们想要最终得到的身份信息,当然该信息可能并不存在,所以需要进行验证。