php - significado - Kohana V3 Auth module funcionalidad user_token
kohana westworld (1)
¿Podría alguien informar sobre la funcionalidad user_token en el módulo Auth? ¿Qué es un uso y cómo esto se incorpora en el módulo Auth?
Se usa cuando un usuario marca el recuadro "Recordarme" en su sitio. Se genera un token para el usuario y se almacena en la tabla user_tokens.
Si observa la clase Kohana_Auth_ORM en la función _login , puede ver cómo se crea:
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 utilizado por la función auto_login () también en la clase 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;
}
Depende de usted usar correctamente esta capacidad dentro de su controlador de autorización. Soy relativamente nuevo en Kohana, pero realizo una simple comprobación para redirigir a un usuario si van al formulario de inicio de sesión y ya están conectados o pueden iniciar sesión automáticamente:
if (Auth::instance()->logged_in() || Auth::instance()->auto_login())
Request::instance()->redirect(''auth/'');
El código para el módulo Auth no es demasiado difícil de entender. Si eres nuevo en Kohana, es un buen punto de partida para ver cómo funciona el módulo ORM.