Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHP für die einfache passwortfreie Anmeldung

So verwenden Sie PHP für die einfache passwortfreie Anmeldung

PHPz
PHPzOriginal
2023-06-22 08:01:421414Durchsuche

Bei der Entwicklung von Webanwendungen ist die passwortfreie Anmeldung (Remember Me) eine sehr häufige Funktion. Sie ermöglicht es Benutzern, über einen längeren Zeitraum angemeldet zu bleiben, ohne jedes Mal ihre Kontonummer und ihr Passwort eingeben zu müssen. Als beliebte Webentwicklungssprache bietet PHP einige einfache Möglichkeiten, diese Funktion zu erreichen. In diesem Artikel wird erläutert, wie Sie PHP für die einfache passwortfreie Anmeldung verwenden.

  1. Cookie setzen

In PHP können wir die Funktion setcookie() verwenden, um ein Cookie zu setzen. Wenn sich der Benutzer ohne Passwort anmeldet, können wir ein Cookie setzen, um den Anmeldestatus des Benutzers zu speichern, nachdem sich der Benutzer angemeldet hat erfolgreich ein. Hier ist ein Beispielcode:

// 设置cookie
setcookie('remember_me', '1', time() + 86400 * 7);

Im obigen Code setzen wir ein Cookie namens „remember_me“ mit einem Wert von „1“ und einer Gültigkeitsdauer von 7 Tagen. Auf diese Weise können wir beim nächsten Besuch der Website durch den Benutzer prüfen, ob „remember_me“ im Cookie vorhanden ist, um festzustellen, ob der Benutzer sich für die Anmeldung ohne Passwort entschieden hat.

  1. Überprüfen von Cookies

Jedes Mal, wenn ein Benutzer die Website besucht, müssen wir prüfen, ob „remember_me“ im Cookie vorhanden ist, um zu überprüfen, ob der Benutzer angemeldet ist. Das Folgende ist ein Beispielcode:

// 检查cookie
if (isset($_COOKIE['remember_me'])) {
    // 用户已登录
} else {
    // 用户未登录
}

Im obigen Code ermitteln wir, ob der Benutzer angemeldet ist, indem wir prüfen, ob $_COOKIE['remember_me'] vorhanden ist, um dem Benutzer die entsprechende Seite anzuzeigen.

  1. Benutzer angemeldet lassen

Wenn sich der Benutzer ohne Passwort anmelden möchte, müssen wir den Anmeldestatus des Benutzers speichern, damit der Benutzer das Konto und das Passwort für einen bestimmten Zeitraum nicht erneut eingeben muss. Normalerweise können wir ein „remember_token“ in der Datenbank speichern und es in einem Cookie speichern, wenn sich der Benutzer anmeldet. Hier ist ein Beispielcode:

// 生成remember_token
$remember_token = md5(uniqid(rand(), true));

// 保存remember_token到数据库
$query = "UPDATE users SET remember_token = '{$remember_token}' WHERE id = '{$user_id}'";
mysqli_query($conn, $query);

// 设置cookie
setcookie('remember_token', $remember_token, time() + 86400 * 7);

Im obigen Code generieren wir ein eindeutiges Remember_token und speichern es in der Datenbank. Anschließend speichern wir das gespeicherte Token im Cookie des Benutzers.

  1. Anmeldestatus des Benutzers wiederherstellen

Wenn der Benutzer die Website erneut besucht, müssen wir prüfen, ob „remember_token“ im Cookie vorhanden ist, und den passenden Benutzer in der Datenbank finden. Wenn der Benutzer gefunden wird, wird der Benutzer auf den angemeldeten Status gesetzt. Hier ist ein Beispielcode:

// 检查cookie中的remember_token
if (isset($_COOKIE['remember_token'])) {
    // 查询数据库中匹配的用户
    $query = "SELECT * FROM users WHERE remember_token = '{$_COOKIE['remember_token']}'";
    $result = mysqli_query($conn, $query);
    $user = mysqli_fetch_assoc($result);

    // 如果找到用户,则将用户设置为已登录状态
    if ($user) {
        $_SESSION['user_id'] = $user['id'];
        // 更新remember_token,防止被恶意利用
        $new_remember_token = md5(uniqid(rand(), true));
        $query = "UPDATE users SET remember_token = '{$new_remember_token}' WHERE id = '{$user['id']}'";
        mysqli_query($conn, $query);
        // 更新cookie
        setcookie('remember_token', $new_remember_token, time() + 86400 * 7);
    }
}

Im obigen Code überprüfen wir das Remember_token im Cookie und finden passende Benutzer aus der Datenbank. Wenn ein Benutzer gefunden wird, setzen wir ihn auf „angemeldet“ und aktualisieren das „remember_token“, um böswillige Ausnutzung zu verhindern.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie Sie PHP für die einfache passwortfreie Anmeldung verwenden. Dies ist eine sehr häufige Funktion von Webanwendungen, und bei der Implementierung sollte darauf geachtet werden, Sicherheit und Rechtmäßigkeit zu gewährleisten. Wir empfehlen den Lesern, sich bei der Implementierung auf diesen Artikel zu beziehen, er sollte jedoch je nach Situation entsprechend geändert und angepasst werden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP für die einfache passwortfreie Anmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn