【发布时间】:2018-12-13 10:51:04
【问题描述】:
我正在实现网络推送通知,它工作正常,除了会话超时的一个问题。在我们的网站上,用户将在 Session 过期后退出。但是,当时用户可能已经关闭了选项卡/浏览器。 如何检测 Session 过期的时间,以便我可以停止向该用户发送通知。
更新: 我的会话将在 30 分钟后过期(会话状态超时 =“30”)。用户登录,然后在不注销的情况下关闭选项卡; 30 分钟后,他将退出。但他仍然收到通知。
【问题讨论】:
-
我认为你不必担心这个。当访问者返回页面时,推送服务器中存储的通知将被传递。
-
@PepitoSh:谢谢,但是 Web 推送在 Service Worker 中运行,因此一旦用户打开浏览器,就会弹出通知。然后单击 webpush 通知将定向到 web,但由于用户尚未登录,它将重定向到登录页面。
-
但是你的问题是另外一回事:如何在用户点击通知时自动登录。这个问题有解决办法。
-
@PepitoSh:所以我的意思是在会话过期之后(这意味着用户已经有效注销),我不希望 webpush 向这个端点/浏览器发送网络推送通知了。有可能吗?
-
我不会将会话超时与注销混为一谈。会话由服务器端的对象表示。何时以及如何销毁此对象取决于您:超时后或显式注销后。如果您没有关于用户关闭窗口的信息,您只能在超时后使会话无效。现在,在浏览器关闭和您在黑暗中拍摄的实际超时之间。您要么必须检测浏览器关闭(几乎不可能),要么必须在下一个会话开始时恢复。
标签: c# asp.net session web-push