Heim > Backend-Entwicklung > PHP-Tutorial > Web-Login-Autorisierungsüberprüfung

Web-Login-Autorisierungsüberprüfung

WBOY
Freigeben: 2016-08-08 09:06:48
Original
2022 Leute haben es durchsucht

Greifen Sie über HTTP auf die Daten einer Dienstsoftware des Servers zu. Der Browser öffnet das folgende Bestätigungs-Popup-Fenster:
Web-Login-Autorisierungsüberprüfung

Weil ich die PHP-Curl-Methode verwenden möchte, um Daten abzurufen, aber nicht weiß, wie ich die Parameter zur Überprüfung von Benutzername und Passwort festlegen soll:
Ich habe festgestellt, dass es nicht funktioniert:

<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
Nach dem Login kopieren
Nach dem Login kopieren

Nachdem ich mich mit Postman angemeldet hatte, um die Anmeldung zu simulieren, habe ich im Anforderungsheader einen Eintrag gefunden:
Web-Login-Autorisierungsüberprüfung

Fügen Sie dann einen Anforderungsheader zur PHP-Curl-Methode hinzu:

<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
Nach dem Login kopieren
Nach dem Login kopieren

Auf diese Weise können Sie die Daten anfordern.
Das Problem besteht jedoch darin, dass diese fest codierte Überprüfung nach Ablauf erneut fehlschlägt, da das Skript auf dem Server platziert werden muss, damit es ständig ausgeführt werden kann, und keine Berechtigung vorliegt.
Wie kann ich die PHP-Curl-Benutzernamen- und Passwortparameter so einstellen, dass ich die Anmeldung immer überprüfen kann?

Antwortinhalt:

Greifen Sie über HTTP auf die Daten einer Dienstsoftware des Servers zu. Der Browser öffnet das folgende Bestätigungs-Popup-Fenster:
Web-Login-Autorisierungsüberprüfung

Weil ich die PHP-Curl-Methode verwenden möchte, um Daten abzurufen, aber nicht weiß, wie ich die Parameter zur Überprüfung von Benutzername und Passwort festlegen soll:
Ich habe festgestellt, dass es nicht funktioniert:

<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
Nach dem Login kopieren
Nach dem Login kopieren

Nachdem ich mich mit Postman angemeldet hatte, um die Anmeldung zu simulieren, habe ich im Anforderungsheader einen Eintrag gefunden:
Web-Login-Autorisierungsüberprüfung

Fügen Sie dann einen Anforderungsheader zur PHP-Curl-Methode hinzu:

<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
Nach dem Login kopieren
Nach dem Login kopieren

Auf diese Weise können Sie die Daten anfordern.
Das Problem besteht jedoch darin, dass diese fest codierte Überprüfung nach Ablauf erneut fehlschlägt, da das Skript auf dem Server platziert werden muss, damit es ständig ausgeführt werden kann, und keine Berechtigung vorliegt.
Wie kann ich die PHP-Curl-Benutzernamen- und Passwortparameter so einstellen, dass ich die Anmeldung immer überprüfen kann?

Dies ist eine PHP-HTTP-Überprüfung, die im Allgemeinen nicht durchgeführt wird. Schließlich ist die HTTP-Überprüfung zu einfach

http://php.net/manual/zh/feat...

<code>$username='ABC';
$password='XYZ';
$URL='<URL>';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
$result=curl_exec ($ch);
curl_close ($ch);</code>
Nach dem Login kopieren

  1. Verwenden Sie CURL, um die Anmeldung zu simulieren und das Autorisierungstoken zu erhalten

  2. Verwenden Sie den in Schritt 1 erhaltenen Token, um die nächste Anfrage zu stellen

Das Token in Schritt 1 kann entsprechend zwischengespeichert werden, und die Cache-Zeit hängt vom Server ab.
Exkurs: Ich persönlich habe das Gefühl, dass die Serverseite von Yii2 geschrieben wurde.

Ich habe etwas Ähnliches schon einmal gemacht. Es hat lange gedauert und ich fand es zu mühsam, also habe ich es schließlich mit Phantomjs gelöst. PHP ruft das Knotenprogramm auf.

Dieses Attribut hinzufügen

<code>$user = 'hello';
$pass = '$world';
curl_setopt($ch, CURLOPT_USERPWD, "{$user}:{$pass}");  </code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage