2010-06-09 10 views
1

J'essaie d'apprendre le module Kohana's Auth, mais la méthode de connexion retourne toujours false.Kohana 3: Auth module

Controller:

<?php defined('SYSPATH') OR die('No Direct Script Access'); 
class Controller_Auth extends Controller { 
    public function action_index() { 
     if($_POST) { 
      $this->login(); 
     } 

     $this->template = View::factory('login'); 
     echo $this->template; 
    } 

    private function login() { 
    $user = ORM::factory('user'); 

     $data = array('username' => 'wilson', 'password' => '123'); 
     if(!$user->login($data)) { 
      echo 'FAILED!'; 
     } 
    } 

    private function logout() { 

    } 
}  
?> 

Modèle:

<?php defined('SYSPATH') or die('No direct script access.'); 
class Model_User extends Model_Auth_User { 
} 
?> 
+0

s'il vous plaît fournir tous vos fichiers. Sera beaucoup plus facile à comprendre. – B4NZ41

Répondre

1

Vous le faites mal.

Pour connecter un utilisateur, faire quelque chose comme ceci:

$auth = Auth::instance(); 
if ($auth->login($_POST['username'], $_POST['password'])) 
{ 
     echo 'hello, '.$auth->$_POST['username']; 
} 
else 
{ 
     echo 'login failed!'; 
} 

En outre, décommentez la ligne de module auth dans le bootstrap de votre application:

'auth'  => MODPATH.'auth',  // Basic authentication 
1

Je n'ai pas ajouter des règles à la utilisateur. Pour plus d'informations, [voir ce lien] [1].

Merci les gars et désolé :)

http://webcache.googleusercontent.com/search?q=cache:kXKFWswjDogJ:kerkness.ca/kowiki/doku.php%3Fid%3Dusing_the_auth_module_in_your_controllers+&cd=1&hl=en&ct=clnk&gl=us

public function action_signin() 
{ 
    #If user already signed-in 
    if(Auth::instance()->logged_in()!= 0){ 
     #redirect to the user account 
     Request::instance()->redirect('account/myaccount');  
    } 

    $content = $this->template->content = View::factory('signin'); 

    #If there is a post and $_POST is not empty 
    if ($_POST) 
    { 
     #Instantiate a new user 
     $user = ORM::factory('user'); 

     #Check Auth 
     $status = $user->login($_POST); 

     #If the post data validates using the rules setup in the user model 
     if ($status) 
     {  
      #redirect to the user account 
      Request::instance()->redirect('account/myaccount'); 
     }else 
     { 
          #Get errors for display in view 
      $content->errors = $_POST->errors('signin'); 
     } 

    } 
} 
+0

Retiré mon vote, parce que j'ai trouvé une copie google cache et fait une modification. – William