繁体   English   中英

Laravel-CSRF与会话令牌不匹配

[英]Laravel - CSRF is not matching with session token

我正在尝试提交一种表单并登录一个用户,它在localhost中似乎工作正常,但是当我将此代码上传到活动服务器时,令牌不起作用。

我检查了CSRF令牌和会话令牌的值是否不相同。

另外,发帖请求不起作用,因此我添加了路由,除了VerifyCsrfToken之外,现在发帖请求正在起作用,但是登录后用户会话不起作用

if (Session::token() != $request->get('_token'))
{
   echo 'Not Match';exit;
}

结果上方没显示我匹配。

我已经在服务器上重新生成了密钥,也提供了对存储文件夹的许可。

缓存数据已清除,但自动签名不起作用,它不起作用。

<form class="login-form js-login-frm" role="form" method="POST" action="{{ route('admin.login-post') }}">
    {{ csrf_field() }}
    <div class="form-body">
        <div class="row">
            <div class="col-xs-12">
                <div class="form-group">
                    <div class="input-group" title="{{__('username_or_email_address')}}">
                        <span class="input-group-addon"><i class="fa fa-envelope-o"></i></span>
                        <input class="form-control" autofocus type="text" id="email_address" placeholder="{{ __('username_or_email_address') }}" name="login"/>
                    </div>
                </div>
            </div>
            <div class="col-xs-12">
                <div class="form-group">
                    <div class="input-group" title="{{__('enter_password')}}">
                        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                        <input class="form-control" id="password" type="password" placeholder="{{ __('enter_password') }}" name="password"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="form-actions">
        <button class="btn-del btn-5 btn-5a fa fa-lock login-btn" type="submit" id="login_btn">
            <span>{{ __('login') }}</span>
        </button>
    </div>
</form>

在我的控制器中

$remember = $request->remember ? true : false;
$auth = Auth::guard('web')->attempt([
  'email' => $request->login,
  'password' => $request->password,
  'is_active' => 1
], $remember);

这段代码可以正常工作,但是用户不会重定向到仪表板页面,而是再次重定向到登录页面。

任何人都可以帮助用户登录系统,并重定向到正确的路由。

在测试环境中,不会在中间件中检查CSRF令牌。 {{ csrf_field() }}替换为@csrf ,就可以了。 看一下生成的登录页面的源代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM