如何检测会话是否即将过期?

How to detect if session is about to expire?

我正在为我的 Go 网站使用 Gorilla Sessions 来管理用户登录。 有时,当用户离开他们的计算机一个小时左右时,会话就会过期,但他们对此一无所知。因此,用户继续他们的工作,但一旦他们尝试保存他们的进度,他们就会被注销。有什么方法可以检测用户的会话是否即将过期,以便自动保存他们的工作或显示警告消息?

解决方案:

一旦客户端登录,他们就会从服务器收到会话到期日期。然后我在客户端设置了一个计时器,它在闲置 X(在我的例子中是 10 分钟)分钟后,每分钟调用 API 并检查会话是否仍然存在以及是否还有更多时间2分钟。如果只剩下两分钟,我会在客户端发出一条警告消息,通知用户他们的会话即将到期(我还使用此事件来触发自动保存功能)。