【微服务认证之一】统一登录认证
首先我们要理解有状态请求和无状态请求。这里的“状态”的意思是服务器端是否要保存用户状态。比如说 cookie和session 是有状态的 因为我们要在服务器端保存session的状态()。而rest API就是无状态 因为我们只需要每次携带JWT进行API call就行了 服务器端只需要验证JWT是否合法 不需要保存任何用户状态。【注意 服务器端不保存任何用户状态不等于不保存任何信息】有状态的坏处
首先我们要理解有状态请求和无状态请求。
这里的“状态”的意思是服务器端是否要保存用户状态。
比如说 cookie和session 是有状态的 因为我们要在服务器端保存session的状态()。
而rest API就是无状态 因为我们只需要每次携带JWT进行API call就行了 服务器端只需要验证JWT是否合法 不需要保存任何用户状态。
【注意 服务器端不保存任何用户状态不等于不保存任何信息】
有状态的坏处:
服务器端保存的大量数据。而且对于一个session 只能从头到尾访问同一个服务器 不一样的话就完了。
无状态的好处:
就是有状态的坏处的反面。
但是我们在服务器端不存任何客户端数据 怎么能认定client携带的JWT是对的呢?
因为不储存任何客户的数据并不代表什么都不存储!
在微服务架构中 流程如下:
我们将颁发和验证token交给授权的服务器去干了。
每一次用户携带token 授权中新都会利用public key来阅读token签名 判断有效之后 再从payload中获取用户信息。
所以我们授权中心只需要存一个token+public key处理之后的字符段就行了。一旦验证通过 那么就可以读token中的user info.所以这也是我们服务器端为什么不用存用户信息的原因 因为客户端每次都会带上。
当然 上图也可以是这样 即把验证这一步放在了每个微服务里面。
更多推荐



所有评论(0)