php 单点登录网关,基于统一网关如何做SSO单点登录

问题描述

假设有两个系统a,b以及一个sso服务,采用前后端分离的方式开发,前端访问接口时均经过网关,这里我使用的是spring cloud gateway,我的想法是所有的接口请求都在网关层判断token(jwt),如果请求头里有去sso服务校验token,成功后转发到真实的业务服务,没有就重定向到sso登录页,登陆后sso把token存在redis中

问题出现的环境背景及自己尝试过哪些方法

此时用户点开a系统的一个链接www.a.com/order,这个页面有很多接口请求,也有可能一个都没有

问题1:针对接口请求,可以在网关判断,如果是单纯的前端链接怎么办,我是说假设已经在b登录了,现在请求又没办法到达后端

忽略问题1,假设用户在a系统登录,sso中缓存了用户token,并且token,用户id返回给了系统a,以后a系统请求都携带token,现在用户访问b系统中接口,我的想法是前端传用户id,sso以用户id为key查询token,有则通过并返回给系统b请求,这样以后系统b也可以都带着token请求

问题2:系统b如何传用户id,一开始系统b是没有任何用户信息的,这个用户id从哪来

以上是我实现sso的想法,感觉问题还有很多,如果各位有成熟的方案(最好是生产级),请直接否定,给出你的答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值