So authentifizieren Sie Nicht-WSDL-Soap in PHP

8

Ich habe diesen Weg genutzt, um Daten vom Server zur Client-Seite zu bekommen. aber ich habe ein Problem um Serverdateien zu authentifizieren.

Ich möchte den Benutzernamen und das Passwort überprüfen, bevor ich die Erlaubnis zum Lesen der Daten erteile. Ich habe versucht, das mit einer zusätzlichen Methode, aber ich es nicht funktioniert.

Server

%Vor%

Clientseite

%Vor%     
user3099298 31.07.2015, 17:17
quelle

2 Antworten

5

Wenn Sie mit einem hartcodierten Benutzernamen und Passwort und einer HTTP-Standardauthentifizierung leben können, können Sie den folgenden Code auf die Serverdatei setzen:

%Vor%

Dies prüft, ob HTTP-Authentifizierungsdaten vorhanden sind, und sendet andernfalls einen HTTP 401-Fehler an den Client zurück. Wenn Authentifizierungsdaten vorhanden sind, werden sie anhand des hartcodierten Benutzernamens foo und des Kennworts bar überprüft.

Um den Benutzernamen / das Passwort vom Client-Skript zu übergeben, passen Sie $options im Client wie folgt an:

%Vor%

Bitte beachten Sie, dass die HTTP-Basisauthentifizierung am einfachsten einzurichten ist, aber dass Benutzername und Passwort in quasi reinem Text an den Server übertragen werden. Sie sollten daher mindestens SSL für den Serviceendpunkt verwenden, damit die gesamte Kommunikation verschlüsselt wird.

Die HTTP-Digest-Authentifizierung ist sicherer, da sie nur Hashes der Anmeldeinformationen sendet, aber es erfordert ein wenig mehr Arbeit beim Einrichten. Ein guter Ausgangspunkt ist die HTTP-Authentifizierungsseite im PHP-Handbuch .

Um die empfangenen Benutzernamen / Passwortdaten auf der Serverseite zu validieren, können Sie auch eine Datenbank mit gültigen Benutzernamen / Passwörtern / Login-Token anstelle der fest codierten Credentials aus dem Beispiel verwenden.

    
stj 04.08.2015, 20:08
quelle
1

Warum senden Sie nicht den Benutzernamen + Pass als Parameter in der Soap. Auf der Serverseite sollten Sie ein Basisobjekt haben, das über die gesamte Authentifizierungslogik verfügt und das "MyService" geerbt hat. Das Basisobjekt wird immer die Anfrage bearbeiten und dann die Details an MyService weitergeben, wenn es die Authentifizierung besteht.

    
in need of help 03.08.2015 10:49
quelle

Tags und Links