【发布时间】:2015-09-05 05:53:48
【问题描述】:
当我尝试登录时显示令牌错误。我已经在视图中检查了令牌,它是正确的,当评论 \App\Http\Middleware\VerifyCsrfToken::class 时,
在Kernel.php 中,它让我登录,但在重定向到我的仪表板后我没有登录。我在 mac 上使用 MAMP。
<div>
<h1>Login</h1>
<div>
{!! Form::open(['url'=>'user/login','class' => '']) !!}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<ul>
<li><label>Customer Code</label>{!!Form::Text('customer_code',Input::old('customer_code'),['class'=>''])!!}</li>
<li><label>Password</label>{!!Form::Password('password','',['class'=>''])!!}</li>
<li>{!! Form::submit('Submit',array('class' => 'btn')) !!}</li>
</ul>
{!!Form::close()!!}
</div>
<div><a href="{!!URL::to('user/forget_password')!!}">Forget Password</a></div>
</div>
同时我使用Sentry Package 登录。
/**
* post_login
*/
public function post_login()
{
try
{
$rules = [
'customer_code' => 'required',
'password' => 'required',
] ;
$message = [
'customer_code.required' => 'erorrr1',
'password.required' =>'error2'
];
$validator = Validator::make(Input::all(), $rules,$message);
if ($validator->fails())
{
return Redirect::back()->withErrors($validator)->withInput();
} // if ($validator->fails())
else
{
$authUser = Sentry::authenticateAndRemember(array(
'customer_code' => Input::get('customer_code'),
'password' => Input::get('password')), false);
if($authUser)
{
//$login = Sentry::loginAndRemember($authUser);
return Redirect::to('user/panel/'.$authUser->id)->with('comment', 'Welcome');
}
else
{
return Redirect::back()->with('comment', 'Error for login');
}
}//validator
}
catch(\Exception $e)
{
return Redirect::back()->withInput(Input::except('password','file'))->withErrors(['ERROR!!!!!']);
}
}
【问题讨论】:
-
显示你想出的代码?需要更多信息?
-
你是如何生成令牌的?显示代码。
-
确保在视图中的表单上设置令牌;最好在隐藏字段中
-
reza 您的表单的“方法”在哪里????这是一个 GET 请求吗?请向我们展示您的身份验证逻辑和重定向。
-
我认为它默认有POST方法。需要手动设置吗?
标签: php session laravel-5 session-cookies csrf