我正在使用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');
}
答案 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