Kar*_*hik 5 php laravel laravel-5.8
我在 Laravel 5.8 中创建了一个项目。在我的本地环境(PHP 7.2)中,它运行良好。当我在登录后使用 cpanel 将此项目托管到我的服务器(PHP 7.1)时,返回 419 页面过期错误。
Mylogin 表单代码:
<form method="POST" action="{{ route('login') }}" id="login-form">
@csrf
<div class="form-group">
<label for="username">{{ __('Username / Email Address') }}</label>
<input type="text" class="form-control{{ $errors->has('username') ? ' is-invalid' : '' }} boxed" name="username" id="username" value="{{ old('username') }}" required autofocus>
</div>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
<div class="form-group">
<label for="password">{{ __('Password') }}</label>
<input type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }} boxed" name="password" id="password" required>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
<div class="form-group" style="margin-bottom: 0px; float:left;">
@if (Route::has('password.request'))
<a href="{{ route('password.request') }}" class="forgetpwd">
{{ __('Forgot Your Password?') }}
</a>
@endif
</div>
<div class="form-group" style="text-align: center;">
<button type="submit" class="btn btn-warning" style="padding:0.5rem 1.8rem;">Login</button>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我清除了缓存和 Cookie,但是显示了相同的问题。
小智 7
总而言之,您可能缺少@csrf。
只需在表单开头标记行之后添加@csrf 即可。它应该是这样的:
<form class="singn-form" method="POST" action="{{ route('register') }}">
@csrf
....
</form>
Run Code Online (Sandbox Code Playgroud)
小智 6
出现此错误是由于 CSRF 令牌验证失败、错误配置的缓存、权限、不正确的会话设置。当用户提交发布请求时会出现此错误。您可以通过执行以下操作来修复它:
CSRF 令牌验证失败 419 错误的最常见原因是 CSRF 令牌失败。跨站点请求伪造是由服务器生成的唯一加密值。这包含在客户端的 HTTP 请求中。稍后服务器对其进行验证。如果失败,则会导致会话过期错误。因此,您检查 Laravel 配置中的 CSRF 设置。
由于缓存导致会话过期错误有时,缓存也会导致前端会话过期错误。这可以是服务器缓存和浏览器缓存。因此,请使用php artisan cache:clear.
Laravel 文件和文件夹权限 同样,不正确的文件或文件夹权限也会导致错误。通常,Web 服务器需要对 Laravel 文件夹存储和供应商的写权限。此外,会话存储需要写权限。所以,给权限,
chmod -R 755 存储
chmod -R 755 供应商
chmod -R 644 引导程序/缓存
Laravel 会话设置 最后但并非最不重要的是,会话设置也会导致 419 错误。app/config/session.php 是会话配置文件。检查一些重要参数 - 域和安全。
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false), // in case of cookie
Run Code Online (Sandbox Code Playgroud)
这些循序渐进的方法修复了错误并使 Laravel 再次工作。
在 head 部分使用它而不是 @csrf :
<meta name="csrf-token" content="{{ csrf_token() }}">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32187 次 |
| 最近记录: |