不同场景下登录检验方式选择

不同场景下登录检验方式选择

根据登录场景的不同,登录分为单机登录和分布式登录两种。单机登录主要是在应用程序比较简单,没有用到分布式的情况下。具体的说明以及使用方式如下。

单机tomcat应用登录检验

单机登录的时候一般会选择把用户信息放到session中,session保存到浏览器和应用服务器回话之间,用户登录成功,服务器端会保证一个session 当然会给客户端一个sessionID
客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId。用户再次请求页面的时候,服务器端会直接从session中查找是否有对应的sessionid。如果存在就说明已经登录成功。

分布式应用中session共享

真实的开发过程中,应用不可能单节点部署所以就有多个节点登录session共享的问题
传统的方式:
tomcat支持session共享,但是有广播风波、用户量大的时候,暂用资源就严重、不推荐,每一个session都会暂用内存,资源,在百万级别是不可行的。

因此出现了使用redis存储token的方式。这种方式可以满足并发量不是特别大的web应用。服务端使用UUID生成随机64为或128为token,放入redis中,然后返回个客户端并存在cookie中,用户每次访问都携带次token,服务器端去redis中检验是否有此用户即可。

但是在大并发量的情况下,redis存储token的方式,同样会增加网络IO开销。

微服务下登录检验解决方案 JWT讲解

简介:微服务下登录检验解决方案 JWT讲解 json wen token
JWT是一个开放标准,他定义了一种用于简洁,自包含的用于通信双方之间以Json 对象的形式安全传递信息的方法。
优点:
1、生成的token可以包含基本信息,比如id、用户昵称、头像等信息、避免再次查库
2、存储在客户端,不暂用服务端的内存资源
缺点:
token是经过base64编码,所以可以解码,因此token加密前的对象不应该包含敏感信息,如用户权限、密码等。
2、JWT格式组成、头部、负载、签名
header+payload+signature
头部:主要是描述签名算法
负载:主要是描述加密对象的信息,如用户的id等,也可以加些规范里面的东西,如iss签发者
签名:主要是把前面两部分进行加密,防止别人拿token进行base解密后篡改token

总结

在开发过程中,还是要根据服务使用的场景,来对技术进行选型。如果应用比较简单可以使用Session的方式,如果是大型的分布式的建议使用jwt的方式。Jwt的当时也是当前最流行的一种方式。
之后会更新spring boot集成SpringSecurity和JWT做登录鉴权的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值