shiro和JWT

shiro 有状态登陆,存在服务器端。
JWT无状态登陆,存在客户端,JWT生成的token默认有效期是三十分钟,并且,JWT无法使已经生成的token失效。
有状态就是说把信息存储在session中,因为session是存在服务端的,也就是有状态的,
无状态就是把信息存在cookie中,cookie是存在客户端的,也就是无状态。

无状态的好处很明显,不存在服务端,可以减少服务端的压力。
JWT是一个轻量级的鉴权框架,可以实现无状态登陆,一般结合RSA使用,RSA是一种非对称加密技术,分为公钥和私钥,公钥和私钥可以互相解密对方加密的东西,公钥可以发出去很多,但是私钥只能有一份,此处也不过多讲解RSA,之后会单独对RSA进行说明。

拿用户登录模块来说,用户登陆时,服务端首先要去数据库来判断这个用户是否正确,如果正确,那就用RSA生成的私钥进行加密,生成一个token,将token返回给用户,用户下次访问服务的时候,带着这个token,如果服务端用公钥能够解析成功,那就说明当前申请是OK的,没啥问题,解析不了,说明不是这个公钥对应的私钥加密形成的token,那就不让它登陆。

token分为三部分:头,载荷,签名。

posted @ 2022-11-11 17:12  少昊  阅读(257)  评论(0)    收藏  举报