Heim  >  Artikel  >  Datenbank  >  Verwenden Sie Redis zum Speichern von Token

Verwenden Sie Redis zum Speichern von Token

齐天大圣
齐天大圣Original
2020-05-08 10:20:143147Durchsuche

Ich glaube, dass alle PHP-Benutzer, die öffentliche WeChat-Konten entwickelt haben, wissen, dass access_token erforderlich ist, um auf WeChat-Schnittstellen zuzugreifen. access_token ist der weltweit eindeutige Schnittstellenaufruf-Zugangsdatensatz des offiziellen Kontos. Es gibt eine Begrenzung, wie oft dieses access_token pro Tag abgerufen werden kann, daher müssen wir es selbst speichern. Darüber hinaus hat dieser Token auch eine Gültigkeitsdauer. Daher müssen wir regelmäßig aktualisieren und das access_token erneut abrufen.

Wie speichere ich es? Wenn Sie MySQL verwenden, speichert eine Tabelle nur ein Datenelement, was sich übertrieben und nicht sehr elegant anfühlt. Wenn Sie Dateien zum Speichern verwenden, ist die Leistung nicht sehr gut und es ist immer noch ein wenig problematisch. Sie müssen das Problem schmutziger Lesevorgänge berücksichtigen.

Lassen Sie mich eine einfache, elegante und leistungsstarke Möglichkeit vorstellen, Redis zum Speichern von Token zu verwenden.

Zwei Befehle

Redis hat viele Datentypen. Hier benötigen wir nur 2 der einfachsten Datentypen string. Einfache Befehle können die Funktionen vervollständigen wir brauchen.

  • set

  • get

Diese beiden Befehle sind sehr einfach, set ist für einen key ist auf eine Zeichenfolge festgelegt.

$redis->set('name', 'monkeyking');

Das Obige zeigt an, dass der Wert des Schlüsselnamens auf Monkeyking gesetzt ist. Darüber hinaus kann die Ablaufzeit für Schlüssel festgelegt werden. Es ist sehr praktisch, die Ablaufzeit einstellen zu können.

$redis->set('name', 'monkeyking', ['ex' => 100]);
# 过期时间设置为100秒后

Der get-Befehl dient zum Abrufen einer Zeichenfolge. Der folgende Code bedeutet, den Wert des Schlüsselnamens abzurufen.

$redis->get('name');

Neben der guten Leistung hat die Verwendung von Redis auch einen sehr guten Vorteil. Da es sich um eine Single-Threaded-Architektur handelt, werden alle Befehle nacheinander ausgeführt. Nachdem der vorherige Befehl ausgeführt wurde, wird der nächste ausgeführt, sodass kein fehlerhaftes Lesen erfolgt.

Funktionen implementieren

Nachdem wir Set und Get eingeführt haben, können wir unsere Anforderungen erfüllen.

Die Schnittstelle für WeChat zum Abrufen von access_token, das zurückgegebene Datenformat ist wie folgt:

{"access_token":"xEaew2sI2dsAd","expires_in":7200}

Wir Sie müssen nur xEaew2sI2dsAd hinzufügen. Speichern Sie es einfach und legen Sie die Ablaufzeit fest.

Der Code lautet wie folgt:

function setAccessToken ($token) {
    return $redis->set(
        'wx_access_token', 
        $token, 
        ['ex'=>7000]
    );
}

function getAccessToken ()
{
    return $redis->get('wx_access_token')
}

Oben ist ein Punkt zu beachten: Die Ablaufzeit muss kleiner als 7200 eingestellt werden. Vermeiden Sie Extremsituationen, wie z. B. das Erhalten des Tokens genau bei 7200 Sekunden und das Aufrufen der Schnittstelle auf WeChat. Da der Aufruf der Schnittstelle ebenfalls Zeit in Anspruch nimmt, läuft das Token ab und verursacht einen Fehler.

Die Verwendung von Redis für den Zugriff auf Token ist sehr einfach und bequem! Jeder kann es versuchen.

Das obige ist der detaillierte Inhalt vonVerwenden Sie Redis zum Speichern von Token. 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