尽管我在堆栈溢出中进行了搜索,并尝试了在类似的问题中提出的所有建议,但我仍然难以通过此异常。
我已经接管了这个网站,我的任务是让它在aws上运行。目前,我没有做任何冒险的事情,只是简单地将这些内容复制到一个运行apache、php、beanstalk、laravel和mariadb的linux aws虚拟机上。
网站设置为使用数据库作为SessionCache Driver。我试过把它改成filecookie但都没有效果。
我已确保key:generate已运行并存储在.env文件中。我尝试了表单中所有不同版本的csrf_token输出,但都没有成功。
我很抱歉就同一个问题发表了另一篇文章,但我希望有其他的想法可以帮助我。
我表格里的一小段…

<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上重新设置之后就不起作用了。

最佳答案

你做错了,根据documentation
在应用程序中定义html表单时,应在表单中包含隐藏的csrf令牌字段,以便csrf保护中间件可以验证请求。您可以使用csrf_field帮助程序生成标记字段:
所以应该是:

{{ csrf_field() }}

以你的形式。meta标记通常用于ajax请求引用令牌。

关于php - TokenMismatchException:在VerifyCsrfToken.php第33行中使用Laravel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58065818/

10-14 12:52
查看更多