单点登录|统一用户中心
2021-09-27 11:42:57 5 举报
登录查看完整内容
单点登录,描述了浏览器、子系统、用户中心交互过程
作者其他创作
大纲/内容
展示资源
登录页面
GET http://user/loginservice=http%3A%2F%2Fa.com
Set-Cookie:jssion=xxxx
带上用户名和密码到用户中心验证
3.生成一个临时ticket,几秒后过期,并且通过他能查询用户信息
验证用户是否登录
根据tichet去用户中心获取用户信息
登录后访问B系统
1 验证用户登录信息
返回业务数据
根据用户的信息,子系统生成session,保存该用户登录凭证
A系统
get http://user/loginservice=http%3A%2F%2Fb.com
302 Location:http://user/loginservice=http%3A%2F%2Fa.com
Set-Cookie:token=xxxxxx
此时会带上保存到浏览器cookie中的token到用户中心
302 LOCATION:http://a.com
2 保存token和对应用户信息并且在浏览器cookie中保存token
b系统自动校验自己用户信息
使用系统
请求资源
reids服务器
保存token ticket,用户信息到redis
第一次访问b系统,没有登录
跳转的时候,会把保存在浏览器cookie中用户登录的token自动带上
如果token为空或者通过token没有找到相应的用户,就跳转到登录页面
302 Location:http://b.com?ticket=xxxx
浏览器
通过ticket获取用户信息,并且返回
GET http://a.com?ticket=xxx
GET http://user/validate?service=http%3A%2F%2Fa.com&tiket=xxxx&&signature=xxxxx
获取对应tichet的用户信息
用户
返回授权内容
第一次访问A系统
生成临时ticket 并且保存到redis中
GET http://a.com
302 LOCATION:http://a.com?ticket=xxxx
302 Location:http://user/loginservice=http%3A%2F%2Fb.com
GET http://b.com?ticket=xxxx
GET http://b.com
判断token是否为空, 根据token获取用户信息
验证用户相关信息
此处只需要实现一个拦截器,发现我们请求中包含了ticket并且没有登录,我们就通过ticket到用户中心去获取用户的信息
保存用户凭证到cookie,重定向到B系统的业务地址
统一用户认证中心
B系统
返回用户信息
a系统发现没有登录,跳转到用户中心去验证
收藏
收藏
0 条评论
回复 删除
下一页