簡體   English   中英

身份驗證問題。 Laravel

[英]Problems with authentication. Laravel

我正在使用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);
      }
    }
}

而我的Model方法:

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)檢查您的session.php,它位於App / config /中。 將“驅動程序”屬性設置為“文件”。 3)不幸的是,這些行動並沒有帶來任何積極的結果。 我將描述我的實例。

請注意以下字符串: <li><a href='logout'>Выход (log out) <span class="glyphicon glyphicon-log-out"></span></a></li>遇到此問題,將“ href”屬性設置為“ Sentry :: LogOut()”或“ Auth :: LogOut()”,然后將其更改為路由,問題就消失了。

希望對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM