Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 了解用户是否在前端登录(Laravel)_Javascript_Php_Laravel_Cookies_Laravel 5.5 - Fatal编程技术网

Javascript 了解用户是否在前端登录(Laravel)

Javascript 了解用户是否在前端登录(Laravel),javascript,php,laravel,cookies,laravel-5.5,Javascript,Php,Laravel,Cookies,Laravel 5.5,所以我来问你们一个简单的问题:laravel会话中继是如何工作的 我的用例:我有一个用清漆缓存的laravel站点,如下所示: 每个get请求都是在用户未登录时发出的 如果在用户加载页面后通过ajax加载,则为任何与用户相关的信息 我的问题是,我需要在前端知道用户是否登录 我注意到的事情: 在js中无法访问Laravel会话 即使用户未登录,Laravel会话也存在 我还尝试在登录时设置我自己的cookie,并在注销时将其取消设置,但当用户仍然登录时,我的cookie被随机破坏 如果有人知道如何

所以我来问你们一个简单的问题:laravel会话中继是如何工作的

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

  • 每个get请求都是在用户未登录时发出的
  • 如果在用户加载页面后通过ajax加载,则为任何与用户相关的信息
  • 我的问题是,我需要在前端知道用户是否登录

    我注意到的事情:

  • 在js中无法访问Laravel会话
  • 即使用户未登录,Laravel会话也存在
  • 我还尝试在登录时设置我自己的cookie,并在注销时将其取消设置,但当用户仍然登录时,我的cookie被随机破坏

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

    你可以像我在回购协议中展示的那样。例如:

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

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

    您可以在JS
    var userCheck=“”,然后检查userCheck是否等于1,则用户已登录,否则不为。

    您可以在用户登录时生成令牌,并将其发送到前端并保存在cookie中。这种饼干可以有,有效期为5小时。如果在这5个小时内,用户发送一些请求,则令牌将刷新,5个小时的时间将再次开始。如果后端没有请求,则表示用户未激活,您可以将其注销。

    我无法执行此操作,因为任何html都会被缓存,并且输入将始终设置为false。如果在服务器和client@FlorentinStemate“HTML已缓存”听起来是个问题,你应该解决它。但是,如果出于某种原因您不想这样做,您只需进行一个Ajax调用,然后在控制器方法中执行
    auth()->check()
    。是的,我认为你的想法很好,我希望有一种不用另一个ajax就能检查的方法request@FlorentinStemate你只有两个选择。通过HTML(如我所示或在
    中)传递数据或进行Ajax调用。没有其他方法。@alextoader Laravel使用DB、文件或cookies等存储会话数据。但是你不能读取cookie,因为它是加密的。我缓存了所有的html,就好像用户没有登录一样,因此这总是错误的,因为在第一个请求之后,所有后续请求都不会命中Laravel,但是Varnish服务器如果缓存了html,@Alexey Mezenin的回答也会这样做。
    let authenticated = $('#authenticated').val();