为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.8 419 页面过期 - 登录后

Laravel 5.8 419 页面过期 - 登录后

PHP
青春有我 2021-12-24 10:05:54
我在 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>我清除了缓存和 Cookie,但是显示了相同的问题。
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

总而言之,您错过了@csrf。


只需在表单开头标记行之后添加@csrf 即可。它应该是这样的:


<form class="singn-form" method="POST" action="{{ route('register') }}">

@csrf

....

</form>


查看完整回答
反对 回复 2021-12-24
?
白衣非少年

TA贡献1155条经验 获得超0个赞

发生此错误的原因是 CSRF 令牌验证失败、缓存配置错误、权限、会话设置不当。当用户提交发布请求时会出现此错误。您可以通过执行以下操作来修复它:

  1. CSRF 令牌验证失败 419 错误的最常见原因是 CSRF 令牌失败。跨站请求伪造是由服务器生成的唯一的、加密的值。这包含在客户端的 HTTP 请求中。稍后服务器对其进行验证。如果失败,则会导致会话过期错误。因此,您检查 Laravel 配置中的 CSRF 设置。

  2. 由于缓存导致会话过期错误有时,缓存也会导致前端会话过期错误。这可以是服务器缓存和浏览器缓存。因此,请使用php artisan cache:clear.

  3. 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

这些循序渐进的方法修复了错误并使 Laravel 再次工作。


查看完整回答
反对 回复 2021-12-24
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

在 head 部分使用它而不是 @csrf :

<meta name="csrf-token" content="{{ csrf_token() }}">


查看完整回答
反对 回复 2021-12-24
  • 3 回答
  • 0 关注
  • 265 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信