您好我正在我的网站上实现聊天/收件箱功能。当用户未登录并从其他用户接收消息时,该网站将向该消息的接收者发送电子邮件。但是,当用户登录时,它不会。
我的问题是如何判断用户是否已登录?例如,如果用户登录然后关闭浏览器,我的后端就不会知道任何事情。
顺便说一句,我在Laravel 4中使用一个安静的API构建一个Angularjs SPA。
答案 0 :(得分:19)
如果您使用的是内置Laravel Auth:
if(Auth::check())
{
//do something
}
如果您使用的是Sentry:
if(Sentry::check())
{
//do something
}
答案 1 :(得分:4)
我建议在用户登录时使用Ajax ping 数据库。添加last_logged_in
类型Date
列
因此,当用户登录时,他们将last_logged_in
字段更新为当前日期。您可以根据需要随时执行此Ajax(非常小的性能问题)。要查看用户是否已登录,只需检查last_logged_in
日期并将其与当前日期减去某个时间(1分钟)进行比较..
我不建议将其用于向用户发送电子邮件,因为它可能会导致大量垃圾邮件。
您可以另外使用is_logged_in
字段,但不要在其上使用它。