我正在尝试提交一种表单并登录一个用户,它在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);
此代码可以正常工作,但用户不会重定向到仪表板页面,而是再次重定向到登录页面。
任何人都可以帮助用户登录系统,并重定向到正确的路由。
答案 0 :(得分:0)
在测试环境中,未在中间件中检查CSRF令牌。将{{ csrf_field() }}
替换为@csrf
,就可以了。看一下生成的登录页面的源代码。