so habe ich einen selbst geschriebenen PHP-Web-Service für eine App.PHP/JS Login-System
Jetzt möchte ich das gleiche mit dem Web tun. Aber ich kämpfe mit dem Login.
Ich muss 2 Funktionen des Web-Service aufrufen. Eine, um ein Login-Token zu erhalten, ein anderes, um dies zu überprüfen und ein Zugriffs-Token anzufordern.
So nenne ich sie mit javascript:
<?php
if(isset($_POST['email']) && isset($_POST['password']))
{
?>
<script>
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://webservice.com/requestLoginToken", false);
xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhttp.send(<?php echo "'email=" . urlencode($_POST['email']) . "'"?>);
if(xhttp.status == 401)
document.getElementById("message").innerHTML = xhttp.responseText;
else
{
var loginToken = xhttp.responseText;
var pwHash = loginToken + <?php echo "'" . sha1($_POST['password']) . "'" ?>;
pwHash = sha1(pwHash);
xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://webservice.com/authenticate", false);
xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhttp.send("loginToken=" + loginToken + "&publicHash=" + pwHash);
if(!xhttp.status == 200)
document.getElementById("message").innerHTML = xhttp.responseText;
else
{
var accesstoken = xhttp.responseText;
}
}
</script>
<?php
}
?>
So jetzt habe ich das Zugriffstoken haben. Aber wie kann ich das jetzt als Session-Variable von $ _SESSION einstellen?
Oder was ist der beste Weg, um dieses Access Token während des Aufenthalts zu speichern?
Ich brauche dieses Token, wenn ich die API aufrufen.
Wenn Sie das Token erhalten, senden Sie es über einen Ajax-Aufruf an Ihren PHP-Code. Achten Sie jedoch darauf, wie Sie es tun, da dies ein Sicherheitsrisiko darstellen kann, wenn Sie es falsch machen. Auf der anderen Seite, wenn es in Ihrer Anwendung nicht unbedingt notwendig ist, es mit Javascript zu tun, schlage ich vor, dass Sie den gesamten Anmeldeprozess mit PHP durchführen, zum Beispiel mit curl. – dlopez
CURL war der Trick, den ich gesucht habe! Funktioniert jetzt. Vielen Dank! – errorcode