Javascript 了解用户是否在前端登录(Laravel)
所以我来问你们一个简单的问题:laravel会话中继是如何工作的 我的用例:我有一个用清漆缓存的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被随机破坏 如果有人知道如何
<input id="authenticated" type="hidden" value="{{ auth()->check() }}">
或者,您可以使用Ajax调用并在控制器方法中执行
auth()->check()
。您可以在JSvar 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();