Kohana V3 Auth Modul user_token Funktionalität
-
23-09-2019 - |
Frage
Kann jemand kurz über user_token Funktionalität in Auth-Modul? Was ist eine Verwendung und wie diese enthält in Auth Modul?
Lösung
Es wird verwendet, wenn ein Benutzer überprüft die ‚Passwort merken‘ Box auf Ihrer Website. Ein Token für den Benutzer erzeugt und in der user_tokens Tabelle gespeichert.
Wenn Sie an der Kohana_Auth_ORM Klasse aussehen in der _login Funktion können Sie sehen, wie es erstellt wird:
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 wird verwendet, um die AUTO_LOGIN () Funktion auch in der Kohana_Auth_ORM Klasse:
/**
* 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;
}
Es ist an Ihnen richtig diese Fähigkeit zu verwenden in Ihrem Berechtigungs Controller. Ich bin relativ neu in Kohana, aber ich führe eine einfache Überprüfung einen Benutzer umgeleitet werden, wenn sie auf das Anmeldeformular gehen und sind bereits angemeldet oder kann automatisch Login:
if (Auth::instance()->logged_in() || Auth::instance()->auto_login())
Request::instance()->redirect('auth/');
Der Code für das Auth-Modul ist nicht allzu schwer zu verstehen. Wenn Sie neu zu Kohana, es ist ein guter Ausgangspunkt, um zu sehen, wie das ORM-Modul funktioniert.