2014-05-14 3 views
0

이전 양식의 인증을 Laravel의 인증으로 전환하려고합니다. 나는 ajax 호출로 사용자를 인증하고 암호를 재설정해야하는지 확인하고있다.JS 리디렉션 될 때까지 Laravel ajax 인증 확인 작업을 수행합니다.

이전 방법의 유효성을 검사하려면 Laravel의 Auth :: login()을 사용하여 수동으로 사용자를 로그인하십시오. 아약스 호출이 성공하면 비밀번호 재설정 경로의 URL로 리디렉션됩니다.

이제 재설정 경로로 이동하면 사용자가 인증되었는지 확인합니다. 비밀번호 재설정 기능을 확인하면 사용자가 더 이상 인증되지 않습니다. Laravel 경로 필터링도 동일한 결과를 반환합니다.

감사합니다. 감사합니다.

자바 스크립트 :

function login(){ 
    $form = $('#login-form') 

    $.ajax({ 
     url: "/laravel/public/index.php/login", 
     type: 'POST', 
     data: $form.serialize(), 
     success: function(data){ 
      if(data.action == 'reset') 
       window.location = '/laravel/public/index.php/reset'; 
     }, 
     error: function(){ 

     } 
    }); 
} 

로그인 기능 - Laravel

$login = Input::get('login'); 
    $pass = Input::get('password'); 

    $user = User::where('login', $login) 
     ->select('password_reset', 'crypted_password', 'salt', 'password', 'id') 
     ->first(); 

    // check for reset old password 
    if($user->password_reset == 1 && Hash::needsRehash($user->password)){ 
     $reset = LoginController::oldValidation($pass, $user->salt, $user->crypted_password); 

     if($reset == 1){ 
      Auth::login($user); 
      error_log('Login Auth:' . Auth::check()); // will return true 
      return array('action'=>'reset'); 
     } 
    } 

초기화 기능 - Laravel

public static function reset(){ 
    error_log('Check: ' . Auth::check()); // this is now false 
} 
+0

를 해결 않았다

이것은 당신이 당신의 JSON 값을 반환하는 방법입니까? 나는 같은 문제가있다 – rafal235

+0

여기 같은 문제가있다 !! – Flavio

답변

1

응답을 반환하는 적절한 방법, 또는 세션 값이를 사용해보십시오 사용자가 올바르게 설정되지 않습니다.

이 유를
return Response::json(array('action'=>'reset')); 
관련 문제