问题

在很短的时间内不去操作系统,就会自动提示,登录状态已过期,您可以继续留在该页面,或者重新登录,所以老是要跳转到登录界面,这一点很麻烦,非常影响用户体验。


解决思路

  1. 令牌设置超时时间,过于短暂;
  2. redis 服务的启动配置文件有问题,没有配置密码登录,而是默认配置(当然笔者对这一点还有点不太理解,但是笔者是这一点出问题,并解决了,还有笔者是 docker 启动 redis 镜像配置 redis 服务的,但仍旧作为其他相似情况下的解决方法,最后一点 思路1 令牌超时问题与思路 2 的问题完全没有关联,不是令牌出问题);

实际方法

思路1、

在若依框架的 application.yml 内找到 token 配置,添加 expireTime 参数,如设置令牌超时时间为 3 天,默认是 30 分钟,所以 expireTime: 720

如下:

# token配置token:# 令牌自定义标识header: Authorization# 令牌密钥secret: abcdefghijklmnopqrstuvwxyz# 令牌有效期(默认30分钟)expireTime: 720# 是否允许账户多终端同时登录 (true 允许/ false 不允许)soloLogin: false

思路2 (重点 – docker 与 redis 服务)

创建 Redis 服务启动配置文件,启用密码连接

Redis 配置文件模板: (默认配置文件请参考传送门链接:传送门)

至关重要的是要配置密码,启用密码验证登录,不然如果一段时间不操作系统界面,就会自动跳转至登录界面,这一点很影响用户体验。

requirepass 123456

docker 启动 redis 命令模板演示:

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf--appendonly yes--requirepass 123456

命令内的密码要和启动配置文件内的密码一致

参考链接

1. 史上最详细Docker安装Redis (含每一步的图解)实战

2. Redis默认配置文件全解析(redis默认配置文件)


总结

最后,我觉得就算不是 docker 镜像启动的 redis 服务,最好也是用密码验证登录比较好,减少问题的出现,而且也能提升系统安全性。