2010-03-30 30 views

Trả lời

12

Nó được sử dụng khi người dùng kiểm tra hộp 'Nhớ thông tin đăng nhập của tôi' trên trang web của bạn. Mã thông báo được tạo cho người dùng và được lưu trữ trong bảng user_tokens.

Nếu bạn nhìn vào lớp Kohana_Auth_ORM trong _login chức năng, bạn có thể xem cách nó được tạo ra:

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']); 
    } 

Nó được sử dụng bởi các auto_login() chức năng cũng trong lớp Kohana_Auth_ORM:

/** 
* 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; 
} 

Bạn có thể sử dụng chính xác khả năng này trong bộ điều khiển ủy quyền của mình. Tôi là tương đối mới để Kohana, nhưng tôi thực hiện một kiểm tra đơn giản để chuyển hướng người dùng nếu họ đi đến biểu mẫu đăng nhập và đã đăng nhập hoặc có thể tự động đăng nhập:

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

mã cho các mô-đun Auth isn' quá khó hiểu. Nếu bạn là người mới đến Kohana, đó là một điểm khởi đầu tốt để xem cách mô-đun ORM hoạt động.

+0

Xin chào Brian Riehman, Cảm ơn bạn đã repply. Và vâng tôi là người mới cho khung công tác Kohana. – Asif

Các vấn đề liên quan