登录后的用户过几秒就自动退出了

文章描述了一个在微服务架构中遇到的用户登录后自动退出的问题。问题根源是服务器时间不准确,导致session入库时间错误,影响了cookie的有效性。解决方案是检查并调整服务器和数据库的时间,以确保时间同步。
摘要由CSDN通过智能技术生成

问题描述

        中午午休正在睡觉,接到产品经理的电话。描述了部署在客户方的一个问题,用户登录系统后过几分钟就自动退出了。当时我就恶心坏了,首先公司采取的是微服务架构,关于登录/用户管理的业务逻辑封装为认证组件。这个问题之前也出现过并且不好排查。之前出现过因为网关或前方面的bug都造成过该问题。其次是因为这个组件因为组织架构变更在名义上已经移交给其他人去负责。当想着产品经理打电话到我这了,本着一事不烦二主的原则,决定排查并解决该问题。

登录的业务逻辑

        不讲业务逻辑了~

问题现象

        当用户登录等几分钟后刷新页面或点击其他操作会自动退出。

排查思路

        首先查看部署的组件版本。然后对应git提交记录查看是否是代码问题。发现使用的比较久的版本(算是稳定版本,经过测试人员测试过的),那么基本排除改代码出现问题的可能。第二步查看组件日志。发现用户登录是有日志输出的。但是当用户强制退出则没有日志记录(删除session)。随后查redis(session信息),发现是有记录的。随后又查看数据库中的session信息。发现了问题。有登录的session记录,但是入库时间比现实时间晚了一天。这就导致cookie的有效时间晚了一天,当cookie消失,在发送请求时前端没有携带cookie,在网关层就会链接用户不在线。导致用户登录后几分钟就会自动退出。 服务器时间不对

如何发现

        客户发现。

如何解决

        1. 首先检查服务器/数据库的时间

# Linux服务器
[root@www ~]# date
2023年 05月 27日 星期六 09:40:59 CST

# 数据库
select now()

        2. 调整服务器/数据库时间

        服务器可以通过date指令手动调整时间。也可以使用ntp自动同步系统时间。

        数据库的调整时间 自行百度~~。

完事~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值