2012-12-15 1 views
4

Kohana 3.3.0에서 ORM 드라이버를 사용하여 Auth 모듈을 사용하려고하지만 데이터베이스에서 새 사용자를 삽입 할 수 있습니다. 나는 그들과 로그인 할 수 없다.Kohana 3.3.0으로 로그인 할 수 없습니다. ORM Auth

빈 경로 인 Kohana 프로젝트, 간단한 경로, 데이터베이스 구성 파일로 시작한 다음 다른 테이블이없는 ORM 모듈에 포함 된 인증 SQL 스키마를 가져 왔습니다. 사용자를 위해 새 모델 파일을 만들지 않았습니다. 지금 여기 내 간단한 컨트롤러

<?php defined('SYSPATH') or die('No direct access allowed.'); 

return array(

     'driver'  => 'ORM', 
     'hash_method' => 'sha256', 
     'hash_key'  => 'secretkey', 
     'lifetime'  => 1209600, 
     'session_type' => Session::$default, 
     'session_key' => 'auth_user', 
     'users'  => array() 

); 

: 여기

내가 내 응용 프로그램 경로/config 디렉토리에 복사 한 구성 파일입니다. 나는 te 데이터베이스에 사용자를로드 한 다음이 동일한 사용자로 로그인하려고합니다.

<?php defined('SYSPATH') or die('No direct script access.'); 

class Controller_User extends Controller { 

    public function action_index(){ 

     // Enter a new user manually 
     $user = ORM::factory('user'); 
     $user->username = 'mylogin'; 
     $user->password = 'mypassword'; 
     $user->email = '[email protected]'; 

     try{ 
      $user->save(); 
     } 
     catch(ORM_Validation_Exception $e){ 
      $errors = $e->errors(); 
     } 

     if(isset($errors)){ 
      $this->response->body(var_dump($errors)); 
     }else{ 

      // Login with this user 
      $success = Auth::instance()->login('mylogin','mypassword'); 
      if ($success){ 
       $this->response->body("Welcome !"); 
      }else{ 
       $this->response->body("Not welcome..."); 
      } 
     } 
    } 
} 

이 컨트롤러에 로그인하는 데 실패합니다.하지만 내 데이터베이스를 확인할 때, 나는 사용자가 제대로 해시 된 암호로 저장을 참조하십시오. 구성에 대해 잊어 버렸습니까?

답변

7

모든 사용자가 login 역할이 있어야합니다

... 
$user->save(); 
$user->add('roles', ORM::factory('role')->where('name', '=', 'login')->find()); 
+0

가 대단히 감사합니다, 그것은 완벽하게 작동합니다! –

+0

많은 감사 !!!! – Flappy

관련 문제