Der Versuch, auf diese Google-Client-API Beispielgoogle Client api Authentifizieren mit einem Backend-Server
https://developers.google.com/identity/sign-in/web/backend-auth
ich meine Zugriffstoken über Javascript und per Post an meine PHP über Ajax JavaScript-Objekt unten nicht funktioniert.
expires_at
:
1490552860336
expires_in
:
2223
first_issued_at
:
1490549260336
id_token
:
"eyJhbGciOiJSUzI1NiIsImtpZCI6ImRkMDM4NzVmMzkzMTdiZThlNTc0MDBlNmMzMDYzMmFmNTU4YzJkZTQifQ.eyJhenAiOiI5Mjg3MzEzODM5NzQtc3RsdmFyc291cnZoNmdqaDdvbjkwZWwxOGhjOHVrNXYuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI5Mjg3MzEzODM5NzQtc3RsdmFyc291cnZoNmdqaDdvbjkwZWwxOGhjOHVrNXYuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMTQ1MTMzNjU2ODMwMzExNzMwOTgiLCJlbWFpbCI6IndoeXRlYXZlbWVjaGFuaWNhbEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6IkF2SUZQaHNjVmFNY1htTEdtand6M2ciLCJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiaWF0IjoxNDkwNTQ5MjU2LCJleHAiOjE0OTA1NTI4NTYsIm5hbWUiOiJUcmF2aXMgS2xlaW4iLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDQuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1BdzlCUjF4YnVBNC9BQUFBQUFBQUFBSS9BQUFBQUFBQUFBQS9BTWNBWWk5b2ZNV1NtcllGc2pTc0xUcFpZZHhkT0FEaGZBL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJUcmF2aXMiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwibG9jYWxlIjoiZW4ifQ.PBcvfMs9_MO9mcHDtGGyb3VbO-O374tHH7w4gWr8ZMpRDYyynY6ZQd5BxRxlh6b__upzxz6gMYQ29yY__zDnEp4_NrkSp7RWQAcoF-JuY8xM1GtDy5IwEFKPxDh9h-9bGoxCx5jgX7-bu2F5Xk6opwZUzoyyYk5BT1xXpBfAe35CJHK_NAzSfrwEX8vU-hIP9C_BjipXptg5Eo3fi3DxPWRVbrzsscV0DDASm9xEi5ilLkUxBwRZN9bk6hgXXgn2Ts7Mo4B7Rue1oyB_rkNJ3RSgH7ylnHrVePiVwJ_15aKwiD64FgcmdLOruLEm9pADoiAodMVNZ6HAElr3MuWG1w"
idpId
:
"google"
login_hint
:
"AJDLj6JimYVJadfBfXai38izEPbdRaSSCtY5FyzYIVQ1IPE2kad13fq5-9Qwkik2AlWx3_Qlco531-R7LVEwcxvs8Xhw0TvrSg"
session_state
:
Object
token_type
:
"Bearer"
meine PHP ist wie folgt
require_once 'google-api-php-client-2.1.1/vendor/autoload.php';
// Get $id_token via HTTPS POST.
$client = new Google_Client(['client_id' =>'my google client id' ]);
$payload = $client->verifyIdToken($this->input->post('id_token'));
if ($payload) {
$userid = $payload['sub'];
// If request specified a G Suite domain:
//$domain = $payload['hd'];
} else {
// Invalid ID token
}
So frustrierend Ich habe noch nie Glück mit Google-API Beispiele hatte. Ich kann anscheinend nichts im Netz finden, um das zu funktionieren. Bitte hilf mir. Ich suche im Grunde für eine ID oder Token kann ich in meiner Datenbank überprüfen und speichern
Ich
$payload = $client->verifyIdToken($this->input->post('id_token'));
Screenshot zeigt diese Funktion stecken zu bleiben, wie weit ich komme, bevor ein Fehler ausgelöst wird.
Ich landete diesen Weg nach oben gehen
$q = 'https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=' . $this->input->post('id_token');
$json = file_get_contents($q);
$userInfoArray = json_decode($json,true);
$googleEmail = $userInfoArray['email'];
$google_id= $userInfoArray['kid'];
Ich bin nicht sicher, ob das Kind eine eindeutige ID für den Benutzer ist oder nicht, aber es hält den gleichen Wert zurück.
Ist das wirklich Ihr Objekt? Und nicht so etwas? '{expires_at: 1490552860336, expires_in: 2223, first_issued_at: 1490549260336 ....}' notieren Sie die Klammern und Komma – Yolo
Nein, es ist nur die Info im Objekt –
http://stackoverflow.com/questions/41797238/cant-validate- google-access-token-wrong-number-of-segments Dies ist eine Person mit einem ähnlichen Problem, denke ich –