【发布时间】:2016-03-07 20:27:32
【问题描述】:
我已经构建了一个 CMS,其中页面是使用元素构建的。每个元素都有字段等。编辑页面时,所有元素(及其相应的字段)都放在手风琴中。单击手风琴标题时,它会打开元素(带有字段和值)。使用 Ajax 检索数据。当用户编辑字段时,他点击保存,这会触发另一个 Ajax 调用。
我和客户注意到的是,如果你工作得很快(比如打开一个元素,错误的一个,让我打开另一个等),用户就会被注销。发送错误 401 说“未经授权”
起初以为这与 CSRF 令牌有关。将其作为 _token 字段或在带有 Ajax 调用等的标头中发送。当这不起作用时,我决定为所有 Ajax 调用创建一个令牌异常,但仍然存在同样的问题。
看起来,当一个 ajax 请求仍在处理中并且我调用另一个请求时,我被注销了。
所以我的问题是,该怎么办?因为这对我们当中的“快速”用户来说非常烦人。
【问题讨论】:
-
stackoverflow.com/a/35343982/2020002 可能就是你要找的东西
-
如果系统正在注销,则不是 CRSF 令牌问题。这听起来更像是一个会话问题。我将打印出整个路由列表“php artisan route:list”并检查中间件列以查看所有这些 ajax 请求都在 auth 或 web 中间件下,并且没有“guest”中间件。同时拥有两者也会导致会话丢失。
-
@Oliver,也试过了
-
你应该提供路线代码
-
在我的搜索中,我发现了这篇文章github.com/laravel/framework/issues/7549,并将会话存储更改为
database。客户现在正在进行试驾,以查看错误是否消失。我会及时通知大家结果