为什么我不断收到错误419页过期

时间:2020-06-11 18:51:30

标签: laravel csrf

我正在使用laravel 7,并在我的表单中不断遇到此问题:

<form class="form-inline " role="form" method="POST" action="{{route('auth.signup')}}">

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

       <div class="form-group">
            <input type="email" class="form-control" id="inputEmail" name="email" value="email">
        </div>


         <div class="form-group">
           <input type="password" class="form-control" id="password1" name="password">

         </div>

         <div class="form-group">
            <input type="password" class="form-control" id="password2" name="password_confirmation">

        </div>



          <button type="submit" class="btn btn-primary mx-auto">Sign Up</button>

</form>

我已经更改了config/session.php此行'lifetime' => env('SESSION_LIFETIME', 1200),

是否必须向路由/控制器显示它们只是基本的

我还试图删除控制器的整个代码,只是dd(“ signed up”),但我仍然遇到相同的问题

我还继续更改了php.ini文件,但问题仍然存在。

也许要添加的另一条信息是,具有指向上方表单的注册链接的主页也具有其自己的表单,其中包含a,并且其令牌与上面的表单中的令牌不同

注册控制器:

    public function postSignup(Request $request)

    {
        $this->validate($request,[
        'email'=>'required|unique:appscheduler_users|email|max:255',
        'name'=>'required|max:255',
        'password'=>'required|confirmed|min:6',
        ]);

        $user=user::create([
                    'email'=>$request->input('email'),
                    'name'=>$request->input('name'),
                    'password'=>bcrypt($request->input('password')),
                    'created'=>date('Y-m-d H:i:s'),
                    'ip'=>$request->ip(),
        ]);

        Auth::login($user);
        if(Session::has('oldUrl')) {
            $oldUrl=Session::get('oldUrl');
            Session::forget('oldUrl');
            return redirect()->to($oldUrl);
                }

        return redirect()
                ->route('home')
                ->with('info','Your Account has been created');
    }




1 个答案:

答案 0 :(得分:0)

要解决此错误,您首先需要在form标签中插入以下命令之一。

@csrf或{{csrf_field}}

如果您的问题仍未解决,请执行以下操作:并保留csrf标签

1。将以下命令之一插入格式标签@csrf或{{csrf_field}}

2。打开.env文件并将其值更改为SESSION_DRIVER部分中的“文件”。

3。然后您应该重置laravel缓存。在终端中输入以下命令

php artisan视图:clear php artisan路线:clear php artisan缓存:clear

php artisan config:cache

4。最后,从服务中拔出项目,然后再次单击php artisan服务

希望您的问题得到解决

也许您想在这里看看 Post request in Laravel - Error - 419 Sorry, your session has expired