我正在使用Laravel框架进行身份验证。这是有效的,在传递有效数据后形成auth将会执行。但是有一个问题:刷新页面后我失去了经过身份验证的用户。
这是我的UserController方法:
public function LogIn(){
$Data = Input::all();
$Validator = $this::ValidateInputData($Data,'L');
if($Validator->fails())
{
print "Ошибка, авторизация не произведена.";
$Errors = $Validator->messages()->toArray();
return View::make('signupView')->with('Errors',$Errors);
}
else{
$User = User::ProceedLogining($Data,$this->GetStayedStatus(Input::get('Stay')));
if ($User instanceof \Illuminate\Database\Eloquent\Model)
{
Auth::login($User,$this->GetStayedStatus(Input::get('Stay')));
return Redirect::to('/');
}
else{
$Alert = 'Ошибка авторизации, проверьте правильность ввода данных.';
return View::make('signupView')->with('Alert',$Alert);
}
}
}
我的模型方法:
public static function ProceedLogining($Data,$StayStatus){
if (Auth::attempt([
'login' => $Data['Login'],
'password' => $Data['Password']
], $StayStatus))
return Auth::user();
else return 'Auth error';
}
当然,第一个命题将是检查“GetStayedStatus”函数,但我尝试传递'true'值,它没有带来任何正面结果
答案 0 :(得分:0)
确定。我解决了这个问题在我的布局中,我有这样的代码:
@if(Sentry::check())
<li class="dropdown">
<a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-user"></span> Профиль {{Sentry::getUser()->login}} <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Мой кабинет (My profile) <span class="glyphicon glyphicon-th-large"></span></a></li>
<li><a href="#">Обновления (News) <span class="glyphicon glyphicon-tasks"></span> </a></li>
<li><a href="#">Сообщения (Messages) <span class="glyphicon glyphicon-comment"></span></a></li>
<li class="divider"></li>
<li><a href='logout'>Выход (log out) <span class="glyphicon glyphicon-log-out"></span></a></li>
</ul>
</li>
@else
<div class="sign-up">
<a class="alert-link" href="{{URL::to("signup/")}}">Вход / Регестрация (Sign up) </a>
</div> <!-- End of sign-up -->
@endif
在上一篇文章中,我使用了内置的&#39; Auth&#39;上课时,你可以看到哨兵&#39; - 这没关系,我的问题仍然没有解决。
所以有一些行动可以帮助你。 1)检查您的用户表并确保您拥有&#39; id&#39;字段并将其设置为主键。 2)检查你的session.php,它位于App / config /。设置&#39;驱动程序&#39;财产到&#39;档案&#39;。 3)不幸的是,这些行为没有给出任何积极的结果。我将描述我的实例。
注意这个字符串:<li><a href='logout'>Выход (log out) <span class="glyphicon glyphicon-log-out"></span></a></li>
,当我遇到这个问题时,&#39; href&#39;属性设置为&#39; Sentry :: LogOut()&#39;或者&#39; Auth :: LogOut()&#39;,然后我将其更改为路由和问题消失。
希望它会有所帮助!