找出用户是否在前端登录(Laravel)



所以我带着一个简单的问题来找你:Laravel会话中继是如何工作的。

我的用例:我有一个用清漆缓存的 laravel 站点,如下所示:

  1. 每个 GET 请求都是在用户未登录时发出的
  2. 任何与用户相关的信息(如果在用户加载页面后通过 AJAX 加载(。

我的问题是我需要在前端知道用户是否已登录。

我注意到的事情:

  1. 在 js 中无法访问 Laravel 会话
  2. 即使用户未登录,Laravel会话也在那里

我还尝试在登录时设置自己的cookie并在注销时取消设置,但是当用户仍在登录时,我的cookie会随机换尿布。

如果有人知道如何确定我的用户是否从标准 cookie 登录,我将不胜感激。

您可以将数据传递给 JS,就像我在存储库中显示的一样。例如:

<input id="authenticated" type="hidden" value="{{ auth()->check() }}">

然后获取将truefalse的数据:

let authenticated = $('#authenticated').val();

或者,您可以使用 Ajax 调用并在控制器方法中执行auth()->check()

您可以在

JS 中使用 var userCheck= " <?php echo Auth::check();?> "; ,然后检查 userCheck 是否等于 1,然后用户登录,否则不登录。

您可以在用户登录时生成令牌并将其发送到前端并将其保存在cookie中。饼干可以有,有效期为5小时。如果在这 5 小时内,用户发送了一些请求,则会刷新令牌,并重新开始 5 小时时间。如果没有请求进入后端,则表示用户不处于活动状态,您可以将他注销。

最新更新