auth :: check()在ajax调用上失败(有时)

时间:2015-02-13 21:47:47

标签: ajax laravel laravel-4

我有一个已记录的用户,可以访问我的JavaScript应用。

在初始化期间,应用程序会发送几个Ajax调用来收集一些信息。

有时,我会说十分之一,其中一个呼叫在我的一个路由过滤器中中止。

我对它的看法:

  • 每次都不会发生
  • 并非总是相同的路线(致电)
  • 同时可能有多个失败
  • 一个简单的页面刷新重新触发调用,和 因为它不是一直失败,一切都恢复正常...... 直到下一个小故障。

这里有错误的过滤器:
我知道这是因为我将403替换为418并且它改变了#34;禁止"小故障" teapot"毛刺。

Route::filter('auth-api', function() {
   if (!Auth::check()) { App::abort(403, "Auth-api filter denied"); } 
});

这是行动中的奇怪错误:
所有/api/[whatever]都会使用相同的过滤器,在这种情况下,/api/assurances会死,而其他过滤器会很好。

enter image description here

1 个答案:

答案 0 :(得分:1)

听起来你的会话由于某种原因失败了。这可能是由file会话驱动程序引起的,当连续多次访问时会导致竞争条件。

最佳选择是更改会话驱动程序并测试问题是否仍存在于另一个会话驱动程序中。我建议尝试使用Redis或Memcache - 因为它们设计得快速,快速和可靠。