本文主要是介绍循环登录提示“您为登录或者认证已过期,请重新登录”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 项目场景
host os:Kylin-Server-10-SP1
docker: docker-ce-18.09.7
cloud: openstack queens
2. 问题描述及原因分析
云平台web输入正确的用户名和密码后,出现提示“您为登录或者认证已过期,请重新登录”,一直循环往复,登录不了,如下如:
通过F12进入调试模式,然后重新输入再次登录,获取到Internal Server Error及You can’t write a against a read only slave,如下信息:
针对Internal Server Error进一步点击,查看reponse,也是报You can’t write a against a read only slave,从WEB架构了解到采用了redis作为token的缓存,怀疑redis缓存只读不可写有关,进入redis容器,通过redis-cli连接,例如:redis-cli -h x.x.x.x -a $redis_password,进入redis交互模式,执行FLUSHDB,出现了页面的报错,如下:
验证了猜想,故是redis的问题,简单粗暴的方式就把redis停掉,然后删除数据,重新初始化生成,如下:
docker stop redis_sentinel redis
rm -rf /var/lib/docker/volumes/redis/_data/*
docker start redis_sentinel redis
若是三控,则三个节点均要执行。
还有可能是时间终端与服务器时间不一致等等情况。
3. 解决方案
redis的问题,简单粗暴的方式就把redis停掉,然后删除数据,重新初始化生成,如下:
docker stop redis_sentinel redis
rm -rf /var/lib/docker/volumes/redis/_data/*
docker start redis_sentinel redis
若是三控,则三个节点均要执行。
这篇关于循环登录提示“您为登录或者认证已过期,请重新登录”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!