Token验证实现思路
简介Token 是一个临时、唯一、保证不重复的令牌Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户
·
简介
Token 是一个临时、唯一、保证不重复的令牌
Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
实现思路
UUID具有上述的特性,所以我们可以使用UUID作为token,生产UUID后放入Redis,设置Redis的过期时间。
Token的SessionID
token和SESSIONID非常的相似,但是SESSIONID在分布式项目中不能共享,虽然SESSION可以通过Redis等技术实现共享,但是使用这类技术会降低项目的性能和可用性。所以现在普遍使用Token代替Session使用。
简单的Token实现思路
- 验证用户的账号密码
- 如果正确,生成UUID作为Key
- 将此Key作为Key,将用户信息作为Value,存入Redis
- 最后返回Token给客户端,客户端将Token保存到Cookie中
- 用户在每次请求时,都会携带此Token,后端在拦截器中校验Token是否存在,如果存在找到对应的用户信息,判断其有哪些权限。
Token优点
- 可以通过Header、Body提交,实现跨域操作
- 可以隐藏参数的真实性,实现参数的脱敏
- 临时、唯一
存在问题:
- 使用Token,必须依赖Redis和Cookie
- 需要频繁操作Redis
更多推荐
已为社区贡献1条内容
所有评论(0)