Ich bin mir nicht sicher, ob ich diese Frage richtig stelle. Ich möchte die Google-Anmeldung verwenden, um Nutzer für bestimmte Aktionen in meiner Webanwendung oder für bestimmte Seiten der Anwendung zu authentifizieren.Google-Anmeldung, Sitzungsstatus speichern?
Ich habe die Anweisungen für Google Sign-In gefolgt und ich bekomme das id_token und übergebe das an meinen Server, der dann den tokeninfo-Endpunkt verwendet, um das id_token zu verifizieren und das id_token für Benutzerinformationen auszutauschen.
Muss ich ein id_token bekommen und dieses an meinen Server und dann an den tokeninfo-Endpunkt zur Verifizierung übergeben, wenn ich irgendeine PHP-Aktion machen will oder gibt es eine Möglichkeit, den authentifizierten Zustand zu speichern, um all diese Aufrufe zu verhindern auf den tokeninfo-Endpunkt, sobald der Benutzer authentifiziert ist?
Ich bin nur nicht sicher, wie man diesen letzten Teil geht. Im Moment übergebe ich den Token mit Javascript so an meinen Server.
function sendToken(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
console.log(id_token);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://app.mydomain.com/test.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log(xhr.responseText);
};
xhr.send('idtoken=' + id_token);
}
Dann auf meinem Backend mache ich das in PHP.
$url = 'https://www.googleapis.com/oauth2/v3/tokeninfo';
$myvars = 'id_token=' . $_POST["idtoken"];
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch );
I $ response dann überprüfen Sie die Benutzer und weiterhin Aktionen wie das Einfügen in der Datenbank, wenn der Benutzer von Google validiert wurde zu validieren. Ich mache diese Validierung jedes Mal, wenn ein Benutzer Daten in die Datenbank eingeben muss, was mir langsam vorkommt. Ich bin mir sicher, dass mir ein Schritt fehlt, der die Dinge verbessern würde.
Danke!