2015-01-13 4 views
0

저는 Laravel 프레임 워크를 사용하여 인증을하고 있습니다. 유효한 데이터를 전달한 후 auth가 완료됩니다. 하지만 문제가 있습니다. 페이지를 새로 고친 후 인증 된 사용자가 손실됩니다.인증 문제. 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"기능,하지만 난 패스 '진정한'값을 시도, 긍정적 인 결과를 가져 오지 못합니다.

+0

조금 이상합니다. 왜 모델에 로그인을 수행하는 방법이 있습니까? "ValidateInputData"메서드가 정적으로 선언되어 있습니까? 해당 행에서 잘못된 구문을 사용하고 있습니다. – Scopey

+0

저자가 이러한 접근법을 사용하는 튜토리얼을 보았는데 이것이 잘못된 것입니까? 'ValidateInputData'예 정적 메서드입니다. –

답변

0

Ok. 나는 이것을 해결했다. 나는 내장 된 '인증'클래스는, 그러나 이것은 당신이 상관 없습니다 Sentry'- '볼 수있는, 내 문제는 아직도이 사용 이전 게시물에서

@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 

: 내 레이아웃에서 나는 이러한 코드를했다 해결되었습니다.

그래서 실제로 어떤 도움을 줄 수있는 행동이 있습니다. 1) 사용자 테이블을 확인하고 'ID'입력란이 기본 키로 설정되어 있는지 확인하십시오. 2) app/config /에있는 session.php를 확인하십시오. 'driver'속성을 'file'로 설정하십시오. 3) 불행히도 이러한 조치가 긍정적 인 결과를 가져 오지는 않습니다. 내 인스턴스를 설명 할 것입니다.

'href'속성이 'Sentry :: LogOut()'또는 'Auth :: LogOut()'으로 설정된이 문제가 발생하면 <li><a href='logout'>Выход (log out) <span class="glyphicon glyphicon-log-out"></span></a></li> 문자열에주의를 기울이면 경로와 문제로 변경됩니다. 지나간.

희망이 도움이 될 것입니다!