Inhaltsverzeichnis
Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung des Tokens der PHP-Schnittstelle mit und hofft, allen zu helfen. Werfen wir zunächst einen Blick auf die Zusammenfassung der Schnittstellenfunktionen: " >Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung des Tokens der PHP-Schnittstelle mit und hofft, allen zu helfen. Werfen wir zunächst einen Blick auf die Zusammenfassung der Schnittstellenfunktionen:
Zusammenfassung der Schnittstellenfunktionen:
api_token = md5 ('Modulname' + 'Controllername ' + 'Methodenname' + '2013-12-18' + 'Verschlüsselungsschlüssel') = 770fed4ca2aabd20ae9a5dd774711de2
Der Server verwendet eine Datentabelle, um den Status von user_token aufrechtzuerhalten. Das Tabellendesign ist wie folgt:
Heim Backend-Entwicklung PHP-Tutorial Detaillierte Erläuterung des Tokens in der PHP-Schnittstelle

Detaillierte Erläuterung des Tokens in der PHP-Schnittstelle

Mar 20, 2018 pm 01:39 PM
php token 详解


Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung des Tokens der PHP-Schnittstelle mit und hofft, allen zu helfen. Werfen wir zunächst einen Blick auf die Zusammenfassung der Schnittstellenfunktionen:

Zusammenfassung der Schnittstellenfunktionen:

1 Da es nicht offen ist, sind alle Schnittstellen geschlossen und nur innerhalb verfügbar Das Produkt ist gültig.

2. Da es nicht offen ist, ist das OAuth-Protokoll nicht möglich, da es keinen zwischengeschalteten Benutzerautorisierungsprozess gibt ;

Für den Zugriff auf einige Schnittstellen ist keine Benutzeranmeldung erforderlich.

Das erste Token ist für die Schnittstelle (api_token);
Das zweite Token ist für den Benutzer (user_token);

Lassen Sie uns zuerst über das erste sprechen Token (api_token)


Seine Aufgabe besteht darin, die Verschleierung und Wirksamkeit des Schnittstellenzugriffs aufrechtzuerhalten und sicherzustellen, dass die Schnittstelle nur von der eigenen Familie verwendet werden kann. Die Referenzidee lautet wie folgt:
Generieren Sie eine zufällige Zeichenfolge basierend auf den gemeinsamen Attributen des Servers und des Clients. Der Client generiert diese Zeichenfolge, und der Server generiert auch eine Zeichenfolge basierend auf demselben Algorithmus, um die des Clients zu überprüfen Zeichenfolge.

Die aktuelle Schnittstelle ist im Wesentlichen im MVC-Modus und die URL ist im Wesentlichen im Restful-Stil. Das allgemeine Format der URL ist wie folgt:
http://blog.snsgou.com/module name/controller name /Methodenname?Parametername 1=Parameterwert 1&Parametername 2=Parameterwert 2&Parametername 3=Parameterwert 3

Die Regeln für die Schnittstellen-Token-Generierung lauten wie folgt:

api_token = md5 ('Modulname' + 'Controllername ' + 'Methodenname' + '2013-12-18' + 'Verschlüsselungsschlüssel') = 770fed4ca2aabd20ae9a5dd774711de2

wobei

1, '2013-12-18' die Tageszeit ist,
2, „Verschlüsselungsschlüssel“ ist ein privater Verschlüsselungsschlüssel. Nachdem das Mobiltelefon ein „Schnittstellenbenutzer“-Konto auf dem Server registriert hat, weist das System ein Konto und ein Kennwort zu. Die Designreferenz für die Datentabelle lautet wie folgt:
Feldname Feld Typanmerkung
client_id varchar( 20) Client-ID
client_secret varchar(20) Client-(Verschlüsselungs-)Schlüssel



Serverschnittstellenüberprüfung, PHP-Implementierungsprozess ist wie folgt:


Lassen Sie uns über das zweite Token (user_token) sprechen

Seine Aufgabe besteht darin, den Benutzernamen und das Passwort des Benutzers vor der mehrfachen Übermittlung zu schützen, um einen Passwortverlust zu verhindern.

Wenn die Schnittstelle eine Benutzeranmeldung erfordert, ist der Zugriffsprozess wie folgt:

1. Der Benutzer gibt den „Benutzernamen“ und das „Passwort“ ein, um sich anzumelden (wenn die Bedingungen dies zulassen, verwenden Sie diese am besten https für diesen Schritt);

2. Nach erfolgreicher Anmeldung gibt der Server ein user_token zurück. Die Generierungsregeln lauten wie folgt:
<?php   
// 1、获取 GET参数 值   
$module = $_GET[&#39;mod&#39;]; $controller = $_GET[&#39;ctl&#39;]   
$action = $_GET[&#39;act&#39;]; $client_id = $_GET[&#39;client_id&#39;];   
$api_token = $_GET[&#39;api_token‘];   
// 2、根据客户端传过来的 client_id ,查询数据库,获取对应的 client_secret   
$client_secret = getClientSecretById($client_id);   
// 3、服务端重新生成一份 api_token   
$api_token_server = md5($module . $controller . $action .  date(&#39;Y-m-d&#39;, time()) .  $client_secret);   
// 4、客户端传过来的 api_token 与服务端生成的 api_token 进行校对,如果不相等,则表示验证失败   
if ($api_token != $api_token_server) {   
    exit(&#39;access deny&#39;);  // 拒绝访问 } // 5、验证通过,返回数据给客户端    
?>
Nach dem Login kopieren
user_token = md5('user's uid' + 'Unix timestamp') = etye0fgkgk4ca2aabd20ae9a5dd77471fgf

Der Server verwendet eine Datentabelle, um den Status von user_token aufrechtzuerhalten. Das Tabellendesign ist wie folgt:

Feldname, Feldtypanmerkung

user_id int Benutzer-ID
user_token varchar(36) Benutzertoken
expire_time int Ablaufzeit (Unix-Zeitstempel)


(Hinweis: Es werden nur die Kernfelder aufgelistet, bitte erweitern Sie die anderen!!!)


Nachdem der Server das user_token generiert hat, wird es Gibt es an den Client zurück (Speicher selbst), und der Client stellt jede Schnittstellenanforderung. Wenn für den Zugriff auf die Schnittstelle eine Benutzeranmeldung erforderlich ist, müssen user_id und user_token an den Server zurückgegeben werden. Nach Erhalt dieser beiden Parameter muss der Server Folgendes tun Folgende Schritte:

1. Ermitteln Sie die Gültigkeit der api_token-Tabellendatensätze.

3 Der Tabellendatensatz ist nicht vorhanden. Wenn der Datensatz vorhanden ist, fahren Sie mit dem nächsten Schritt fort. 4. Aktualisieren Sie die Ablaufzeit von user_token Gültigkeitsdauer ohne Löschung);

5. Schnittstellendaten zurückgeben:


Anfragemethode: POST
POST-Parameter: title=Ich bin der Titel&content=Ich bin der Inhalt
Rückgabedaten:




Wie kann man Token-Hijacking verhindern?

Es wird definitiv ein Problem des Token-Lecks geben. Wenn ich zum Beispiel Ihr Mobiltelefon bekomme und Ihren Token kopiere, kann ich mich vor Ablauf an anderer Stelle als Sie anmelden.
Eine einfache Möglichkeit, dieses Problem zu lösen
1. Verschlüsseln Sie das Token beim Speichern symmetrisch, speichern Sie es und entschlüsseln Sie es dann, wenn Sie es verwenden.
2. Kombinieren Sie die Anforderungs-URL, den Zeitstempel und das Token und fügen Sie eine Salt-Signatur hinzu, und der Server überprüft die Gültigkeit.
Der Ausgangspunkt beider Methoden ist: Es ist einfacher, Ihre gespeicherten Daten zu stehlen, aber es ist schwieriger, Ihr Programm zu zerlegen und Ihre Verschlüsselungs-, Entschlüsselungs- und Signaturalgorithmen zu hacken. Es ist jedoch eigentlich nicht schwer zu sagen, dass es schwierig ist, denn schließlich geht es darum, sich vor Herren und nicht vor Bösewichten zu schützen.

Verwandte Empfehlungen:

Instanzmethode von PHP, die Token implementiert

Detaillierte Erläuterung des Tokens in der App-Schnittstelle

So legen Sie die WeChat-Applet-URL und das Token fest

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Tokens in der PHP-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles