【发布时间】:2019-09-23 15:36:48
【问题描述】:
尽管在 Stack OverFlow 中搜索并尝试了类似发布的问题中建议的所有内容,但我仍在努力通过此异常。
我已经接管了这个网站,并负责让它在 AWS 上运行。目前,我没有做任何冒险的事情,只是简单地将大量内容复制到 Linux AWS VM 上,该 VM 运行 Apache、PHP、beantalk、Laravel 和 MariaDB。
该站点设置为使用数据库作为Session 和Cache Driver。我尝试将其更改为 file 和 cookie,但两者都没有区别。
我已确保key:generate 已运行并存储在.env 文件中。我已经尝试了表单中csrf_token 输出的所有不同版本,但无济于事。
我很抱歉针对同一问题发布另一个问题,但希望有其他想法可以帮助我。
我表单中的一个 sn-p....
<form method="post" accept-charset="utf-8" autocomplete="off">
<meta name="csrf-token" content="{{ csrf_token() }}">
<div class="form-group">
.......
</form>
根据@Script47 的建议,我修改了我的表单,但遗憾的是,这不起作用:
<form method="post" accept-charset="utf-8" autocomplete="off">
{!! csrf_field() !!}
<div class="form-group">
.......
</form>
更多片段:
路由 - web.php
Route::any('/signup', ['as' => 'jobseeker.signup', 'uses' => 'Jobseeker\JobseekerController@signup']);
控制器
if ($this->request->isMethod('POST'))
{
$rules = [
'email' => 'email|required|unique:jobseekers,email',
'password' => 'required|min:6|confirmed',
];
$validation_messages = ['email.unique' => trans('messages.auth.email.unique.validation', ['login' => route('jobseeker.login'), 'forgot' => route('jobseeker.forgot')])];
$validation = Validator::make($this->request->all(), $rules, $validation_messages);
if ($validation->passes())
{
Unsubscriber::remove($this->request->get('email'));
$jobseeker = Jobseeker::register($this->request->get('email'), $this->request->get('password'));
$jobseeker->sendRegistrationNotification();
$this->auth->login($jobseeker);
return redirect()->route('account.details');
}
疯狂的是,这在现场环境中有效。但是由于我复制了代码并在 AWS 上重新设置它,所以不起作用。
【问题讨论】:
-
"VerifyCsrfToken.php" 是哪个文件,在Illumination包中,第33行只包含
protected $except = []; -
是的,发光包之一。但在我的第 33 行是抛出异常的地方:
throw new TokenMismatchException; -
您是否使用 Ajax 发布表单?因为没有动作
-
不@CaddyDZ。单击注册按钮时的简单 POST。
-
您发帖的网址在哪里?表单数据如何到达后端?路线在哪里?
标签: php linux laravel laravel-5 exception