Frage

Kann jemand kurz über user_token Funktionalität in Auth-Modul? Was ist eine Verwendung und wie diese enthält in Auth Modul?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top