5
有沒有人可以簡要介紹Auth模塊中的user_token功能?什麼是用途,以及它如何結合到Auth模塊中?Kohana V3 Auth模塊user_token功能
有沒有人可以簡要介紹Auth模塊中的user_token功能?什麼是用途,以及它如何結合到Auth模塊中?Kohana V3 Auth模塊user_token功能
當用戶選中您網站上的「記住我」框時,會使用它。令牌爲用戶生成並存儲在user_tokens表中。
如果你看一下在_login功能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使用()功能也在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;
}
您需要在您的授權控制器內正確使用此功能,由您決定。我是比較新的Kohana的,但我進行簡單的檢查,如果他們去登錄表單,並已登錄,也可以自動登錄到重定向用戶:
if (Auth::instance()->logged_in() || Auth::instance()->auto_login())
Request::instance()->redirect('auth/');
代碼爲驗證模塊ISN」太難理解了。如果您是Kohana的新手,那麼瞭解ORM模塊的工作原理是一個很好的起點。
嗨,Brian Riehman,謝謝你的重新申請。是的,我是Kohana框架的新手。 – Asif 2010-03-31 04:54:49