江门网站建设公司哪家好上海网站seo招聘
单点登录就是通过用户一次性获取身份验证,就可以访问单点登录系统中其他关联的应用系统
减少了由登录产生的时间消耗
双token的作用
之前
认证中心和客户端之间使用session+cookie
用户访问子系统的时候,使用认证中心颁发的session id给子系统,子系统通过id向认证中心请求数据
好处∶
- 用户信息的高度控制,所有统一放到认证中心
坏处∶
- 如果子系统扩容,子系统集群变大,频繁向认证中心请求
现在这样,用户有一天如果要被限制登录,从认证中心删除不会影响到用户使用认证的token去登录子系统,要不然就通知子系统,不要让这个用户登录了
如果有十几个子系统,这样要都通知就很麻烦了
之后
双token策略为了解决这种单点登录耗费资源的痛点
- 用户第一次登录向认证中心请求token
- 认证中心返回两个token,普通token和刷新token
- 用户访问子系统的时候,根据从认证中心拿到的普通token去请求子系统(当然子系统和用户中心在验证的时候可以通过密钥来验证,具体不是很了解,但这样是可以实现的)
好处∶
认证中心不会被频繁的请求,效果好,成本低
双token使用的是一种分布式的模式
劣势∶
认证中心失去了对用户的控制,之前的session+cookie,当我们从认证中心删除用户信息的时候,此时如果普通token过期,使用刷新token去请求的时候,用户就无法直接进入子系统,因为认证中心表中没有存储了
总结:
双token就是控制了用户访问子系统的权限!
也就是说,认证中心颁发两个token,一个是普通token一个是刷新token
普通token用于访问子系统,时间很短容易过期
一旦过期就用刷新token访问认证中心,认证中心查看刷新token没有过期就重新颁发普通token
双token增加了控制力
我要再登录再去访问,如果短token过期了,就用刷新token重新请求,这个时候你用户要是违法,那我就不给你发新的短token了