2010-04-17 97 views
2

我試圖用以下控制器操作登錄,但我的登錄嘗試一直失敗(我收到'無效的用戶名和/或密碼'消息)。我究竟做錯了什麼?我也嘗試了auth documentation,Auth::instance()->login($user->username, $form->password);的例子中給出的另一種方法,但是我得到了同樣的結果。 Kohana版本是2.3.4。使用Kohana驗證模塊登錄 - 我做錯了什麼?

public function login() { 
    $auth = Auth::instance(); 
    if ($auth->logged_in()) { 
     url::redirect('/account/summary'); 
    } 

    $view = new View('login'); 
    $view->username = ''; 
    $view->password = ''; 

    $post = $this->input->post(); 
    $form = new Validation($post); 
    $form->pre_filter('trim', 'username') 
     ->pre_filter('trim', 'password') 
     ->add_rules('username', 'required'); 

    $failed = false; 
    if (!empty($post) && $form->validate()) { 
     $login = array(
      'username' => $form->username, 
      'password' => $form->password, 
     ); 
     if (ORM::factory('user')->login($login)) { 
      url::redirect('/accounts/summary'); 
     } else { 
      $view->username = $form->username; 
      $view->message = in_array('required', $form->errors()) ? 
          'Username and password are required.' : 
          'Invalid username and/or password.'; 
     } 
    } 

    $view->render(true); 
} 
+0

您可以添加您用於該帖子的視圖,以便我們也可以看到該表單嗎?此外,您是否嘗試添加一些調試語句以確保用戶名和密碼正確地被傳遞到登錄功能? 用戶已經在數據庫中創建了,對吧? – 2010-04-18 21:36:17

回答

0

想通了我的問題......東西在我的註冊過程中丟失,因爲它創建用戶記錄,但沒有作用到用戶ASSOC記錄。登錄需要特定的角色才能登錄,或者即使使用有效的用戶名和密碼,登錄也不起作用。手動插入記錄允許我登錄,所以我只需要稍微調試我的註冊操作。