素材巴巴 > 程序开发 >

oauth2.0--基础--07--第三方单点登录接入接口方案

程序开发 2023-09-03 23:33:23

oauth2.0–基础–07–第三方单点登录接入接口方案


代码位置

https://download.csdn.net/download/zhou920786312/20934764
 

1、问题

  1. 目前我们有一套自己的oa系统,oa系统有个门户页面,我们需要在这个门户上单点集成其他系统。
  2. 每个其他系统都有自己的单点登陆方式,比如其他系统1使用token集成单点,其他系统2使用session集成单点。且不能去让其他系统去修改他们的单点方式。
  3. 没有统一认证中心

思考

如果我们对每一个其他系统都做适配的话,以后接入进来的系统,我们都需要开发,这样不仅会导致工作量太大,而且也不能很好的统一单点登陆。

所以我的设计就是,让其他系统提供一个接口(/autherThirdLogin),接口url和参数我们来定义。这样我们只需要调用
接口,通知其他系统,这个用户需要跳转你的系统。

/autherThirdLogin核心设计

  1. 需要对参数进行签名,防止数据被篡改
  2. 需要对参数进行加密,防止被别人解析
  3. 需要对参数进行失效设计,防止别人截取到url,以后就能直接登录。

2、接口设计

2.1、/autherThirdLogin接口定义

描述

通知其他系统,某个用户需要免登陆跳转到其他系统上 
 

请求URL

http://第三方系统IP:端口/autherThirdLogin
 

请求方式

POST 
 

请求参数

请求参数必选参数类型说明keytrueString加密的数据

返回字段

返回字段字段类型说明codeint0 成功,-1失败messageStringfailure,sucessdataObject扩展返回的map对象tokenStringtokensessionIdStringsessionIdreturnLinkString跳转的url

请求示例

http://localhost:8080//autherThirdLogin?key=7khdRKH-GlI_b454egJjhBJpY0NwA6ulY_zWHyQ7fxbKuTSEdtxO_WeogVRiy0QMqQ7HjbPAa31NWCl-24lqplEtqmC2sO6f9bmGq5OLYEgjmUiU5jlcQ9kZN6K2Nx7_RAZK4DnzRIkYHFRdSwGP7flpfqsaL8zuXcBF-7JcX8fhqEee9YjNVQnUkd8c3HE1H9Alf0L8OjGBr0xrz8WKV92kVcBOtY-kVmQ_c6SbmTo1nLnOpkv55OWjChWbVl9SA4F6q3HVem0gJqKPw-aX4dryQRTu1ZHIZhC15KlNsEgpXuYhdSfD2m6eGJBzaK2B

返回示例

{"code": 0,"message": "sucess","data": null,"token": "123","sessionId": "123","returnLink": "http://ip:端口/autherThirdLogin2"
 }

举例案例和demo,参考demo

在这里插入图片描述


标签:

上一篇: vscode中代码提示失效问题 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。