2010-03-30 7 views

Antwort

12

Es wird verwendet, wenn ein Benutzer das Feld "Remember me" auf Ihrer Website aktiviert. Ein Token wird für den Benutzer generiert und in der Tabelle user_tokens gespeichert.

Wenn man sich die Kohana_Auth_ORM Klasse aussehen in der _login Funktion können Sie sehen, wie es erstellt wird:

if ($remember === TRUE) 
    { 
     // Create a new autologin token 
     $token = ORM::factory('user_token'); 

     // Set token data 
     $token->user_id = $user->id; 
     $token->expires = time() + $this->config['lifetime']; 
     $token->save(); 

     // Set the autologin cookie 
     cookie::set('authautologin', $token->token, $this->config['lifetime']); 
    } 

Es wird von der AUTO_LOGIN() verwendet wird Funktion auch in der Kohana_Auth_ORM Klasse:

/** 
* Logs a user in, based on the authautologin cookie. 
* 
* @return boolean 
*/ 
public function auto_login() 
{ 
    if ($token = cookie::get('authautologin')) 
    { 
     // Load the token and user 
     $token = ORM::factory('user_token', array('token' => $token)); 

     if ($token->loaded() AND $token->user->loaded()) 
     { 
      if ($token->user_agent === sha1(Request::$user_agent)) 
      { 
       // Save the token to create a new unique token 
       $token->save(); 

       // Set the new token 
       cookie::set('authautologin', $token->token, $token->expires - time()); 

       // Complete the login with the found data 
       $this->complete_login($token->user); 

       // Automatic login was successful 
       return TRUE; 
      } 

      // Token is invalid 
      $token->delete(); 
     } 
    } 

    return FALSE; 
} 

Es liegt an Ihnen, diese Funktion in Ihrem Autorisierungscontroller ordnungsgemäß zu verwenden. Ich bin relativ neu in Kohana, aber ich führe eine einfache Überprüfung einen Benutzer umgeleitet werden, wenn sie auf das Anmeldeformular gehen und in bereits angemeldet sind oder automatisch einloggen:

if (Auth::instance()->logged_in() || Auth::instance()->auto_login()) 
    Request::instance()->redirect('auth/'); 

Der Code für das Auth Modul isn‘ t zu schwer zu verstehen. Wenn Sie neu in Kohana sind, ist es ein guter Ausgangspunkt, um zu sehen, wie das ORM-Modul funktioniert.

+0

Hallo Brian Riehman, Danke für die Wiederholung. Und ja, ich bin Neuling für das Kohana-Framework. – Asif