0

Ich benutze das YouTube-API zum ersten Mal und befolge die Dokumentation. Das Dokument ist jedoch sehr unklar, wenn es um nicht-grundlegende Funktionalität geht, und es scheint nicht, dass andere Dokumente für mich zu überprüfen, um meine eigene Abfrage zu beantworten.Wie überprüfe ich, ob ein Token widerrufen wurde (vom Benutzer), bevor es offline in der serverseitigen Anwendung verwendet wird?

Lassen Sie mich erklären:

ich implementiert haben die grundlegende auth/Token Beispiel https://developers.google.com/youtube/reporting/guides/authorization/server-side-web-apps#example zur Verfügung gestellt und es funktioniert gut.

nun das Zugriffstoken unter der Annahme, in einer Datenbank gespeichert wird, anstatt der Sitzung (für die spätere Verwendung in „offline“ Datenabfrage) ... meine Frage ist:

Wie kann ich überprüfen, ob der Benutzer widerrufen Zugriff auf meine Bewerbung, vermutlich über seine/ihre Kontoeinstellungen? Was passiert, wenn es auf diese Weise widerrufen wird und ich versuche, das (jetzt ungültige) Zugriffs-Token offline zu verwenden?

UPDATE

Leider ist es nicht An error occurred: { error: invalid_grant, error_description: Token has been expired or revoked. }

Der rohe Fehler zurückgegeben werden, scheinen zurückgegeben ist

Uncaught exception 'Google_Service_Exception' with message '{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "errors": [ { "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "domain": "global", "reason": "unauthorized" } ], "status": "UNAUTHENTICATED" } } 

die gefangen werden können, aber es ist sehr seltsam. Ich habe keine ungültigen Anmeldeinformationen, da der Fehler angezeigt wird ... Ich habe keine Berechtigung!

Die Dokumentation fehlt hier sehr.

+0

haben Sie keine Lösung gefunden ..? – usama

Antwort

0

Wenn der Benutzer die Berechtigung für Ihre App widerruft und dann versucht wird, das (jetzt ungültige) Zugriffstoken zu verwenden, wird die Nachricht An error occurred: { error: invalid_grant, error_description: Token has been expired or revoked. } zurückgegeben.

Der richtige Weg ist, um fortzufahren zu überprüfen, ob dieser Fehler zurückgegeben wird, und wenn ja, leiten Sie den Benutzer erneut zu authentifizieren, so dass ein neues Zugriffstoken erzeugt wird, wird ein Zugriff ordnungsgemäß gewährt. Nehmen Sie zum Beispiel die folgende Logik:

try { 

    //request the service 

} catch (Exception $e) {   

    if($e->getMessage() == "Token has been expired or revoked"){ 
     //redirect user to authenticate again 
    } 
} 
Verwandte Themen