2016-11-01 27 views
3

Ich verwende die. NET API für v2 mit dem Code-Flow-Szenario. Ich hatte den Eindruck, dass Sie damit ein Aktualisierungstoken erhalten, das Sie speichern und erneut verwenden können, um neue Zugriffstoken zu erhalten, nachdem der Benutzer Ihre App einmal autorisiert hat.wiederverwendbare Aktualisierungstoken für Dropbox API?

nach einem Anruf wie unten navigieren ich die uri den Anruf bietet.

Ich parse das Ergebnis für den Code-Parameter, die ich dann ProcessCodeFlowAsync() füttern. Das funktioniert nur, um das Zugriffs-Token einmal zu erhalten. Wenn ich es speichere und versuche, es erneut zu verwenden, bekomme ich "Code wurde bereits verwendet: ungültige Erteilung" Fehler.

Ich dachte, was ich bekam war ein Refresh-Token, aber wiederholt Feeding es ProcessCodeFlowAsync funktioniert nicht. Wie erhalte ich ein Aktualisierungstoken, das ich wiederholt verwenden kann, um Zugriffstoken zu erhalten, ohne dass der Benutzer jedes Mal autorisieren muss. Ich caching und Wiederverwendung des Auth-Token nicht das Access-Token übrigens.

Antwort

2

Die Dropbox-API verwendet keine Aktualisierungstoken. Stattdessen sollten Sie lediglich das Zugriffstoken speichern und erneut verwenden, das Sie am Ende des App-Autorisierungsablaufs erhalten.

Der Benutzer oder die Anwendung kann jedoch jederzeit ein Zugriffstoken widerrufen. Wenn API-Aufrufe aufgrund eines widerrufenen Zugriffstokens fehlschlagen, können Sie den Benutzer auffordern, die App erneut zu verknüpfen, wenn sie die Anwendung weiterhin verwenden möchten die Integration, so kann die App ein neues Token bekommen.

(Der „Code“ Sie passieren zu ProcessCodeFlowAsync ist ein „Berechtigungscode“, die nicht wiederverwendbar ist.)

+0

so wie lange Zugriffstoken tun? Jede OAUTH-Implementierung, die ich gesehen habe, ist wie 45 Minuten. Nicht langfristig. –

+0

OK, ich schätze, sie laufen niemals ab, wenn sie nicht widerrufen werden. http://StackOverflow.com/Questions/23400244/dropbox-access-token-expiry Vermutung, ich habe nur vorgefasste Meinungen über oauth, die mich verwirrten. Vielen Dank! –