Php 身份验证问题。拉维尔

Php 身份验证问题。拉维尔,php,authentication,laravel,Php,Authentication,Laravel,我正在使用Laravel框架进行身份验证。它的作品,在传递一个有效的数据,以形成身份验证将被执行。但有一个问题:刷新页面后,我会丢失经过身份验证的用户 下面是我的UserController方法: public function LogIn(){ $Data = Input::all(); $Validator = $this::ValidateInputData($Data,'L'); if($Validator->fails()) {

我正在使用Laravel框架进行身份验证。它的作品,在传递一个有效的数据,以形成身份验证将被执行。但有一个问题:刷新页面后,我会丢失经过身份验证的用户

下面是我的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”值,它不会带来任何积极结果。我解决了这个问题。在我的布局中,我有这样的代码:

  @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
在上一篇文章中,我使用了内置的“Auth”类,但在这里你可以看到“Sentry”——没关系,我的问题仍然没有解决

因此,有些行动实际上可以帮助你。 1检查用户表,确保有“id”字段,并将其设置为主键。 2检查位于App/config/的session.php。将“驱动程序”属性设置为“文件”。 3不幸的是,这些行动没有产生任何积极的结果。我将描述我的例子

请注意这个字符串:,当我遇到这个问题时,将“href”属性设置为“Sentry::LogOut”或“Auth::LogOut”,然后将其更改为route,问题就消失了


希望这会有帮助

这有点奇怪。为什么您的模型中有一个方法来执行登录?ValidateInputData方法是否声明为静态?你在这一行中使用了错误的语法。我看过一篇教程,作者使用了这种方法,这是错误的吗?”ValidateInputData'是,这是一个静态方法