2013-12-08 3 views
0

새 사용자를 만든 다음 로그인하려고하면 사용자가 데이터베이스에 저장되고 해당 역할도 저장됩니다. 내가 리디렉션에 충돌하지 않지만 그들이에 기록 된 말을 나는 인증 : 인스턴스 -> 로그인을 디버깅하고 난 사용자 로그인시 false를 반환하는 Auth :: instance

return array(

'driver'  => 'ORM', 
'hash_method' => 'sha256', 
'hash_key'  => 'bernardo', 
'lifetime'  => 1209600, 
'session_type' => Session::$default, 
'session_key' => 'auth_user', 

구성

) 다시 FALSE

public function action_index() 
{ 

    $view = View::factory('index/home'); 

    if(Request::current()->post()): 
     $post = $_POST; 

     try { 
      $user = ORM::factory('User'); 

      $user->username = $post['username']; 
      $user->password = $post["password"]; 
      $user->email = $post["email"]; 
      $user->logins = +1; 
      $user->save(); 


      if ($user->saved()): 
       $user->add('roles', ORM::factory('Role')->where('name', '=', 'login')->find()); 


       $logged_in = Auth::instance()->login($post['username'], $post['password']); 

       echo Debug::vars($logged_in); exit;     

       if ($logged_in): 
        HTTP::redirect("/dashboard/"); 
       endif; 

      endif; 

     } catch (Exception $e) { 
      echo Debug::vars($e); exit; 
     } 
    endif; 

    $index_page = $view->render(); 
    $this->response->body($index_page);   
} 

얻을.;

해싱 중에 암호가 잘못 될 수 있습니까?

답변

0

암호를 일종의 필터를 적용하지 않으면 데이터베이스에 일반 텍스트로 저장합니다. 다음을 시도하십시오.

$user->password = Auth::instance()->hash($post["password"]); 

이렇게하면 저장하기 전에 암호가 해시되었는지 확인합니다. Auth은 데이터베이스의 값과 비교하기 전에 암호를 해시합니다.

관련 문제