用户离开页面时,Laravel中的登录失效

时间:2015-11-17 15:23:25

标签: php session laravel laravel-5

这似乎是一个小而易于解决的问题,但我找不到任何解决方案。

我想在浏览网站时仅为该会话登录用户。一旦他们关闭标签我想让他们的会话过期。据我所知,我无法在内置的Auth类中执行此操作。

我怎么能有效地做到这一点?

2 个答案:

答案 0 :(得分:2)

简短回答:你可以'

只需在expire_on_close中设置config/session.php即可在整个浏览器关闭时销毁会话(同时请确保清除浏览器中的Cookie以使其正常工作):

'expire_on_close' => true,

但是无法检测浏览器中选项卡何时关闭。您最接近的是JavasSript方法onbeforeunload,当您关闭选项卡时会触发该方法。但是,当您离开页面或点击后退按钮时,它也会触发,并且无法区分这些操作。

您可以在服务器上设置非常短的会话时间,并且" ping "来自任何打开页面的服务器,让它知道以保持会话仍在使用,这意味着当应用程序打开的选项卡关闭时它会很快过期,但这是一个非常难看的解决方案。 / p>

答案 1 :(得分:0)

由于PHP是服务器端代码,因此它只知道访问的上一次/页面。

请参阅:Destroy PHP session on page leaving