sso-oauth2单点登录功能笔记

场景:最近公司2个系统需要做单点登录,A系统作为服务器,认证方式是sso-oauth2方式,B系统作为客户端,token方式是ta-token,先来张sso-oauth2认证方式的图

前置准备工作

第一步:要确认谁是服务提供方即认证方,另一方即为客户端。

第二步:获取到认证方的认证方式

第三步:建立双方系统用户之间的绑定关系(一般绑定关系放在客户端),认证方与客户端用户可以是多对1,也可以是多对多,如果做成多对多,需要有一个前端页面供用户选择或者直接默认用户

客户端前端工作

用户在登录认证方后访问客户端sso页面获取code(前端开发一个sso页面,主要功能就是发送一个url请求到认证方的sso授权页面)

url示例:

复制代码
http://ip:端口/admin/sso?client_id=${params.client_id}&redirect_uri=${params.redirect_uri}&response_type=${params.response_type}

client_id由认证方配置

redirect_uri:重定向的位置(sso-oauth2还会效验和配置的域名部分是否一致)

response_type:授权方式,一般用授权码方式,固定值code

客户端后端工作

客户端前端拿到code访问客户端后端接口获取token

第一步:拿code访问认证方的授权接口,拿到授权方的访问令牌、刷新令牌、令牌类型过期时间等等

第二步:用授权方的访问令牌访问授权方的接口,拿到认证方当前登录的用户信息

第三步:用认证方的用户信息检查客户端是否有此绑定信息,有则用绑定的客户端用户信息走系统内登录流程,拿到客户端token返回给前端,前端用此token和认证方交互(此情形下单点登录工作已完成);如果没有绑定关系,应返回一个错误码以及认证方用户信息给前端,前端写一个简易登录界面,用户填写用户名密码,点击登录后,把登录的用户名密码和认证方用户信息发送给给客户端后端授权登录接口

第四步:客户端后端授权登录接口:拿用户输入的用户密码信息走系统内登录流程,之后增加绑定信息,拿到登录的token返回

相关推荐
小李不想当小白2 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
2601_965384264 小时前
口腔黏膜清洁的工程化路径:从表面形貌表征到清洁策略匹配
经验分享·笔记
泡泡鱼(敲代码中)5 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
Hotchip_MEMS6 小时前
传统咪头与MEMS硅麦:雾化器气流传感方案对比
人工智能·笔记·物联网·电脑·制造
志尊宝6 小时前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
水云桐程序员7 小时前
量子力学概论,量子力学概念总结
笔记·科技·学习·量子计算
darin_ฅ( ̳• ◡ • ̳)ฅ17 小时前
【 Obsidian】2026版-Obsidian安装Automatic Table of Contents 插件一键生成文章目录
笔记
2401_850122047 小时前
航空、轨交、汽车线束防护有什么不同?三大行业的共性、差异与选型逻辑
经验分享·笔记·科技
志尊宝7 小时前
Vue3 零基础每日笔记(037):动手封装 useMouse 与 useWindowSize——事件监听的标准模板
前端·javascript·vue.js·笔记·html5
有范先生8 小时前
【无标题】
笔记