VerifyCsrfToken.php第53行:SOS调用中的Laravel 5-TokenMismatchException

VerifyCsrfToken.php第53行:SOS调用中的Laravel 5-TokenMismatchException,php,laravel,laravel-5,token,laravel-socialite,Php,Laravel,Laravel 5,Token,Laravel Socialite,这个错误快把我逼疯了。我正在尝试创建一个检索密码表单,当我提交它时,这个错误一直被抛出。代币肯定是提供的,所以我不知道怎么了。到目前为止,这只发生在我的本地计算机上。这不会发生在生产上。同时,我也不确定这是否有关联 InvalidStateException in AbstractProvider.php line 191 当我尝试用社交名媛(google&fb)登录时。一种倾向于在另一种发生时发生。如果我从提交表单中获得令牌不匹配,然后尝试登录,则会出现此错误 不管怎样,这是表格。我真的需

这个错误快把我逼疯了。我正在尝试创建一个检索密码表单,当我提交它时,这个错误一直被抛出。代币肯定是提供的,所以我不知道怎么了。到目前为止,这只发生在我的本地计算机上。这不会发生在生产上。同时,我也不确定这是否有关联

InvalidStateException in AbstractProvider.php line 191 
当我尝试用社交名媛(google&fb)登录时。一种倾向于在另一种发生时发生。如果我从提交表单中获得令牌不匹配,然后尝试登录,则会出现此错误

不管怎样,这是表格。我真的需要帮助

{!! Form::open(['method'=>'post', 'action'=>'PasswordRetrieveController@getUser','id'=>'retrieve-pw-form'])!!}


    <div class='form-group'>
        {!! form::label('email','Email Address')!!}
    {!!Form::text('email','',['class'=>'form-control','type'=>'email','required'=>'required'])!!}

   </div>

{!!Form::submit('submit',['class'=>'btn btn-md btn-default'])!!}
{!!Form::close()!!}
{!!Form::open(['method'=>'post','action'=>'PasswordRetrieveController@getUser“,'id'=>'retrieve-pw-form'])
{!!form::label('email','email Address')
{!!Form::text('email','',['class'=>'Form-control','type'=>'email','required'=>'required'])
{!!Form::submit('submit',['class'=>'btn btn md btn default'])
{!!Form::close()!!}
这是控制器。它永远不会影响我的getUser函数。只抛出令牌不匹配错误

<?php
namespace App\Http\Controllers;

use App\User;
use App\SecurityQuestions;
use Mail;
use Redirect;
use Illuminate\Http\Response;
use Illuminate\Http\Request;

class PasswordRetrieveController extends Controller{

public function index(){
    return view('password.index');
}

public function getUser(Request $request){
    $email = $request->get('email');
    $user = User::where('email',$email)->first();
    if ($user == null){
        return Redirect::back()->with('message','This email does not exist');
    }
    if(($user->password == null) && (!empty($user->provider))){
        return Redirect::back()->with('message','A password for this email does not exist. Log back in with facebook or google');
    }
    else{
        $tmp_pw = $this->generate_tmp_pw($user);

    return Redirect('password.security_question_1');
    }
}

public function security_questions(){
    echo 1 ;exit;
}

private function generate_tmp_pw($user){
    $tmp_pw= str_random(10);

    $user->tmp_password = $tmp_pw;
    $user->save();
    return $tmp_pw;
}

}

Csrf令牌丢失,这就是laravel不接受它的原因。将其添加到您的表单中:

{!! Form::open(['method'=>'post', 'action'=>'PasswordRetrieveController@getUser','id'=>'retrieve-pw-form'])!!}

    {!! csrf_field() !!}

    //...

这将生成一个包含令牌的隐藏输入字段。

Csrf令牌丢失,这就是为什么laravel不接受它的原因。将其添加到您的表单中:

{!! Form::open(['method'=>'post', 'action'=>'PasswordRetrieveController@getUser','id'=>'retrieve-pw-form'])!!}

    {!! csrf_field() !!}

    //...

这将生成一个包含令牌的隐藏输入字段。

您编写了,您提供了令牌,但我无法在您的表单中看到它。奇怪的是,它可以在生产现场工作,csrf验证中间件在生产现场启用了吗?顺便说一句,你写了一个aswer。你写了,你提供了代币,但我在你的表格中看不到。奇怪的是,它可以在生产现场工作,csrf验证中间件在生产现场启用了吗?顺便说一句,当我使用Form::open时,已经生成了一个aswer.Token。当我检查inspect elementToken是否已经生成时,输入名称标记和值都在那里,尽管我使用Form::open时已经生成了。当我检查inspect元素时,输入的名称标记和值都在那个里