2010-03-30 14 views

उत्तर

12

इसका उपयोग तब किया जाता है जब कोई उपयोगकर्ता आपकी साइट पर 'मुझे याद रखें' बॉक्स चेक करता है। उपयोगकर्ता के लिए एक टोकन उत्पन्न होता है और user_tokens तालिका में संग्रहीत होता है।

आप _login समारोह में Kohana_Auth_ORM वर्ग को देखें, तो आप देख सकते हैं कि यह कैसे बनाया जाता है: Kohana_Auth_ORM कक्षा में

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

यह auto_login द्वारा किया जाता है() समारोह भी:

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

आपके प्राधिकरण नियंत्रक के भीतर इस क्षमता का सही ढंग से उपयोग करने के लिए आप पर निर्भर है। मैं अपेक्षाकृत Kohana के लिए नया हूँ, लेकिन मैं एक साधारण की जांच करते हैं एक उपयोगकर्ता रीडायरेक्ट करने के लिए अगर वे लॉगिन फ़ॉर्म पर जाएं और पहले से लॉग इन कर रहे हैं या स्वचालित रूप से लॉग इन कर सकते हैं:

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

कोड प्रमाणीकरण मॉड्यूल 'isn के लिए समझने में बहुत मुश्किल नहीं है। यदि आप कोहाना में नए हैं, तो यह देखने के लिए एक अच्छा प्रारंभिक बिंदु है कि ओआरएम मॉड्यूल कैसे काम करता है।

+0

हाय ब्रायन रिहमैन, प्रतिक्रिया के लिए धन्यवाद। और हाँ मैं कोहाना फ्रेमवर्क के लिए नौसिखिया हूँ। – Asif

संबंधित मुद्दे