westworld significado naruto koseven gato framework espaƱol anime php frameworks kohana kohana-3

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.