laravel multiple domains csrf tokenmismatch

时间:2017-05-15 19:55:43

标签: php laravel cors csrf multiple-domains

我正在构建一个包含两个域的系统(sub1.domain.com和sub2.domain.com)。这两个域使用完全相同的系统。我使用两个域的唯一原因是因为名称使用户更清楚。

在sub1.domain.com上一切正常,但在sub2.domain.com上我收到CSRF TokenMismatch错误。

我尝试以两种不同的方式实现CORS,制作my own middleware并使用standard composer package for laravel。 这两种解决方案似乎不起作用。

我还尝试在config/session.php中定义一个域。 (子域和顶级域)。但是,当我尝试这一点时,整个登录停止工作,我被重定向回登录页面,没有消息。 (如果使用了错误的凭据,我确实收到了错误消息)

一些想法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我有同样的问题,对于一个域,csrf正在工作,但是对于另一个域,我正在接收连接超时。我发现的唯一解决方案是在VerifyCSRFTtoken控制器中添加CSRF验证的例外。我的控制器现在看起来像这样:

class VerifyCsrfToken extends Middleware
{
   protected $except = [
    '/routename',
   ];
}

这不是最佳解决方案,但是可以快速修复。寻找更好的想法。