Laravel随机验证CSRF令牌

时间:2017-08-24 02:19:11

标签: php laravel laravel-5 laravel-5.3

我目前在Laravel 5.3中构建了一个Web应用程序。

我使用带有SQL Server的Laravel Valet在我的MacBook Pro上本地运行。所有预期的功能都有效。

然后我将它上传到我在DigitalOcean上的Ubuntu Web服务器上,并且自从我开始这个项目(8个月前)以来没有任何问题就把它放到了那里。

对于特定表单POST请求,我收到令牌不匹配错误:

<app-select [aria-label]="'Type'"
            [id]="'typeOption'"
            [panelClass]="'filter multiple fluid search'"
            [placeholder]="'Select Multiple...'"
            [multiple]="true"
            [selected]="selected.type"
            (change)="selected.type = $event">
    <option *ngFor="let type of typeOptions" [value]="type">{{ type }}</option>
</app-select>

用户已登录并且应用程序上的其他POST请求有效。表单在表单内部具有正确的CSRF令牌,并且令牌存储在页面头部的元标记()下。

我在本地没有这个问题,他们都有相同的数据库架构和内容。

我无法理解为什么这个问题只会发生在网络服务器上。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

基于我的假设:确保将$this->middleware('auth');添加到控制器的构造函数中,以处理该帖子请求。

也可以在csrf令牌字段选项之一下使用:

<input type="hidden" name="_token" value="{{ csrf_token() }}">

或者:

{{ csrf_field() }}