Google Drive Api - Angepasster IDataStore mit Entity Framework

11

Ich habe meine benutzerdefinierte IDataStore implementiert, damit ich Endbenutzertoken in meiner Datenbank anstelle der Standardimplementierung speichern kann, die auf Dateisystem innerhalb von% AppData%.

%Vor%

Controller

%Vor%

Das Problem tritt beim Redirect-Ereignis auf. Nach dieser ersten Weiterleitung funktioniert es gut.

Ich habe herausgefunden, dass beim Redirect-Event etwas anders ist. Beim Redirect-Ereignis ist T keine Token-Antwort, sondern eine Zeichenfolge. Außerdem wird dem Schlüssel "oauth _" vorangestellt.

Ich nehme also an, dass ich ein anderes Ergebnis auf der Weiterleitung zurückgeben sollte, aber ich habe keine Ahnung, was ich zurückgeben soll.

Der Fehler, den ich bekomme, ist: Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Fehler: "State is invalid", Beschreibung: "", Uri: ""

Google-Quellcode-Referenz Ссылка

Ссылка

Danke für Ihre Hilfe

    
Hugo Hilário 02.12.2014, 16:33
quelle

2 Antworten

0

Ich bin mir nicht ganz sicher, warum deine nicht funktioniert, aber das ist eine Kopie des Codes, den ich benutze. Die vollständige Klasse finden Sie hier DatabaseDatastore.cs

%Vor%     
DaImTo 06.12.2014 14:23
quelle
0

Die API speichert (mindestens) zwei Werte in Ihrem IDataStore . So sieht der Autorisierungsprozess aus der Sicht eines leeren IDataStore aus (notieren Sie, welche Zeilen einen Wert festlegen und welche Zeilen einen Wert erhalten):

%Vor%

Zuerst versucht die API, ein gespeichertes access_token zu finden, aber es gibt keines im Datenspeicher (das nur null zurückgibt), und die API startet den Autorisierungsprozess. Der Schlüssel "oauth _..." ist eine Zustandsinformation, die die API während dieses Prozesses benötigt, und wird normalerweise vor dem Abrufen festgelegt (nach meiner Erfahrung).

Wenn Ihr IDataStore jedoch nie einen Wert mit einem "oauth_ .." Schlüssel erhalten hat und somit nichts zurückgeben kann, geben Sie einfach null zurück, und die API sollte bei Bedarf ein neues erstellen.

    
Sphinxxx 11.02.2015 20:20
quelle