概述
我的指导人的文章:https://blog.csdn.net/zhou920786312/article/details/119546135
————————————————
第三方单点登录接入接口方案
说明
一、问题
目前我们有一套自己的oa系统,oa系统有个门户页面,我们需要在这个门户上单点集成其他系统。每个其他系统都有自己的单点登陆方式,比如其他系统1使用token集成单点,其他系统2使用session集成单点。
思考
如果我们对每一个其他系统都做适配的话,以后接入进来的系统,我们都需要开发,这样不仅会导致工作量太大,而且也不能很好的统一单点登陆。
所以我的设计就是,让其他系统提供一个接口(/autherThirdLogin),接口url和参数我们来定义。这样我们只需要调用
接口,通知其他系统,这个用户需要跳转你的系统。
/autherThirdLogin核心设计
- 需要对参数进行签名,防止数据被篡改
- 需要对参数进行加密,防止被别人解析
- 需要对参数进行失效设计,防止别人截取到url,以后就能直接登录。
二、接口设计
2.1、/autherThirdLogin接口定义
描述
通知其他系统,某个用户需要免登陆跳转到其他系统上
请求URL
http://第三方系统IP:端口/autherThirdLogin
请求方式
POST
请求参数
请求参数 | 必选 | 参数类型 | 说明 |
---|---|---|---|
key | true | String | 加密的数据 |
返回字段
返回字段 | 字段类型 | 说明 |
---|---|---|
code | int | 0 成功,-1失败 |
message | String | failure,sucess |
data | Object | 扩展返回的map对象 |
token | String | token |
sessionId | String | sessionId |
returnLink | String | 跳转的url |
请求示例
http://localhost:8080//autherThirdLogin?key=7khdRKH-GlI_b454egJjhBJpY0NwA6ulY_zWHyQ7fxbKuTSEdtxO_WeogVRiy0QMqQ7HjbPAa31NWCl-24lqplEtqmC2sO6f9bmGq5OLYEgjmUiU5jlcQ9kZN6K2Nx7_RAZK4DnzRIkYHFRdSwGP7flpfqsaL8zuXcBF-7JcX8fhqEee9YjNVQnUkd8c3HE1H9Alf0L8OjGBr0xrz8WKV92kVcBOtY-kVmQ_c6SbmTo1nLnOpkv55OWjChWbVl9SA4F6q3HVem0gJqKPw-aX4dryQRTu1ZHIZhC15KlNsEgpXuYhdSfD2m6eGJBzaK2B
返回示例
demo
{
"code": 0,
"message": "sucess",
"data": null,
"token": "123",
"sessionId": "123",
"returnLink": "http://ip:端口/autherThirdLogin2"
}
举例案例和demo,参考demo
代码位置
https://download.csdn.net/download/zhou920786312/20934764
最后
以上就是聪明手链为你收集整理的第三方单点登录接入接口方案(参与)一、问题二、接口设计的全部内容,希望文章能够帮你解决第三方单点登录接入接口方案(参与)一、问题二、接口设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复