基于token的登录验证
实现
- Redis数据库 存储token
JWT
产生token- 实现登录验证
- 设置过期时间,实现登陆认证
- 请求携带token才能访问接口
token(令牌)
原理:
登录流程:
访问流程:
实现
下述代码的实现基于springboot
用户数据主要存储在mysql数据库的user表中
dao层使用了mybatis
1. Redis数据库 存储token
登录的信息仅需一个key-value,如果直接使用关系型数据库进行存储,则需要再建一个数据库表。而redis是非关系型数据库,本身就支持简单的key-value类型的数据。再加上,如果数据库挂了或关闭了,里面的数据都会被自动序列化到本地文件中。
代码实现
项目中导入redis客户端依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置redis(配置文件application.properties/application.yml)
spring.redis.database:0 #redis的0号数据库
spring.redis.host:redis所在的ip
spring.redis.port:6379 #redis端口号默认6379
测试
//注入redis客户端
@Autowired
private StringRedisTemplate redisTemplate;
void test() {
//添加key为name,value为lisi的数据,该数据6秒后过期
/**
* 参数1:key值
* 参数2:value值
* 参数3:过期时间
* 参数4:时间单位
*/
redisTemplate.opsForV