【问题标题】:Laravel pages with multiple ajax requests sometimes logs a user out具有多个 ajax 请求的 Laravel 页面有时会注销用户
【发布时间】: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。客户现在正在进行试驾,以查看错误是否消失。我会及时通知大家结果

标签: laravel laravel-5


【解决方案1】:

看完这篇文章:https://github.com/laravel/framework/issues/7549我已经将会话存储设置为database。现在,我们在 CMS 中执行的多个 ajax 请求不会发生“未经授权”的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-06
    • 2014-07-31
    • 2016-03-02
    • 2019-05-29
    • 1970-01-01
    • 2015-12-28
    • 2020-08-12
    • 2017-12-05
    相关资源
    最近更新 更多