Frage Gibt es eine Möglichkeit, ein Zugangs-Token über Ubuntuone oauth zu erhalten?


Ich arbeite an einer Web-App, die einen Dateiexport nach Dropbox und Skydrive beinhaltet und ich wollte auch UbuntuOne hinzufügen. Das heißt, ich brauche Zugriff auf Dateien und wenn ich die U1-API-Dokumente richtig verstanden habe, ist das einzige oauth-Token mit Zugriff auf Dateien das Vollzugriffstoken:

https://one.ubuntu.com/developer/account_admin/issue_tokens/cloud

Um einen Vollzugriffstoken anzufordern, muss der Benutzer seinen Benutzernamen und sein Passwort in meine App eingeben. Ist das korrekt? Oder gibt es eine andere Möglichkeit, ein Token mit Zugriff auf die Dateien des Benutzers auf dieselbe Weise zu erhalten, wie ein Token mit eingeschränktem Zugriff angefordert wird, d. H. Der Benutzer muss seinen Benutzernamen und sein Passwort nicht meiner App zur Verfügung stellen?


4
2018-03-14 09:48


Ursprung




Antworten:


Es gibt. Als Web-App können Sie den Standard-OAuth-Tanz gegen Ubuntu One verwenden, um einen OAuth-Token zu erhalten.

Verwenden Sie URLs https://one.ubuntu.com/oauth/request Um einen Token zu erhalten, leiten Sie den Benutzer zu https://one.ubuntu.com/oauth/authorize/?description=yourappname um es autorisiert zu haben, und https://one.ubuntu.com/oauth/access/ um es in ein echtes Token zu konvertieren, das Sie speichern und zur Authentifizierung von Anfragen im Namen des Benutzers verwenden können.


4
2018-03-14 10:48



Außerdem bin ich gerne bereit, zusätzliche Informationen und Hilfe bei Bedarf zu geben. Schreibe mir einfach eine Zeile oder jage mich auf freenode IRC (als Wassermann). - sil
Vielen Dank! Dies ähnelt dem Anfordern eines Tokens mit beschränktem Zugriff, jedoch ohne den App-Unterordner. Ist das irgendwo dokumentiert? Wenn ich dies mit PHP OAuth versuche, löst es eine Ausnahme aus und sagt, dass mein consumerToken / Secret wahrscheinlich falsch ist. Muss ich u1app wie in den Token mit begrenztem Zugriff verwenden oder muss ich eindeutige Tokens anfordern? Wenn ja, wo bekomme ich einen ConsumerToken / Secret? - migerh
Um zu verdeutlichen, verwenden Sie für diese Token ubuntuone / hammertime als Verbraucherdetails. - sil
@sil deine erste Verbindung (one.ubuntu.com/oauth/request) gibt 404 zurück - Lucio


Das sollte funktionieren: http://pastebin.ubuntu.com/883106/

In einer Bibliothek, die ich geschrieben habe, gibt es einen Beispielcode, der diese Schritte durchläuft: https://code.launchpad.net/restful-u1


0
2018-03-14 11:22



Es sieht so aus, als würde es das SSO von Ubuntu verwenden, wo meine App den Benutzernamen und das Passwort des Benutzers benötigt, was ich zu vermeiden versuche. - migerh
Nein, so erhalten Sie ein Zugangstoken zum ersten Mal. Sobald Sie das Zugriffstoken haben, können Sie es verwenden, indem Sie die Anforderungen mit dem Consumer / Token-Paar signieren, wie im Beispiel gezeigt. - webm0nk3y