2017-08-31 24 views
0

nicht sicher, ob dies wirklich dumme Frage, aber ist es möglich, den Zugriff auf/nutzen die Dropbox im Rahmen einer Web-API.Nutzen Dropbox in Web API

Berücksichtigen Sie Folgendes. Ich habe eine mandantenfähige Front-End-Anwendung in Angular geschrieben. Das Backend (Multi-Tenant) in einer C# -Web-API. Der Benutzer kann Dokumente/Dateien hochladen. Die API ist verantwortlich für das Hochladen der Dokumente zum Speicheranbieter. In diesem Fall ist es Dropbox. Die Sache ist, ich habe gelesen, dass Dropbox Benutzername/Passwort Auth nicht mehr unterstützt. Daher wird OAuth verwendet, wenn der Benutzer der anrufenden Anwendung zustimmen muss. Dies muss nur einmal passieren. Da mehrere Benutzer in einem einzigen Mieter kann den Online-Speicher nutzt, bin ich kämpfen, um zu sehen, wie diese über einen Web-API funktionieren würde ...

Irgendwelche Vorschläge? Danke!

+0

Wenn Sie das Dropbox .NET SDK verwenden, würde ich an den Beispielen zur Verfügung gestellt, einen Blick darauf werfen. Wenn Sie sich ihre einfache Blog-Demo ansehen, können Sie sehen, wie sie Zugriffstoken für alle Benutzer in der Datenbank speichern. Wenn sie eine Datei hochladen, rufen sie das Zugriffstoken im Backend für den Benutzer ab, der die Aktion ausführt und authentifizieren die Anforderung an Dropbox https://github.com/dropbox/dropbox-sdk-dotnet/tree/master/dropbox-sdk-dotnet/Examples ich nicht sicher bin, ob dies ist, was Sie suchen, aber vielleicht wird es Hilfe zeigen Sie in die richtige Richtung ... – comradburk

+0

@comradburk vielen Dank für die Antwort. Also kann ich nicht nur ein Zugangstoken speichern und für alle Benutzer verwenden? Ich möchte nur einen Speicherort für alle Benutzer verwenden. Tatsächlich richtet der Benutzer root admin die Dropbox-Instanz ein. Alle anderen Benutzer auf der Website müssen nicht wissen, welcher Speicheranbieter verwendet wird. –

Antwort

1

Ja, Sie können die API von Drittanbietern in der Web-API verwenden. Ich habe noch nie die Drop-Box-API verwendet, aber da Sie sagen, dass sie OAuth als Authentifizierungsmechanismus verwenden, kann ich Ihnen den Code zeigen, der die API der dritten Partei in diesem Fall aufruft (clarifai). Ich verwende HttpClient Sie können Dropbox .NET SDK verwenden. Wenn Sie jedoch bei HTTP bleiben möchten, dann ist here die Dokumentation für das gleiche.

Jetzt, da Sie die Sorge haben, den Benutzer zu authentifizieren und das Token zu erhalten. Here ist ein Dropbox-Beispiel, in dem sie zeigen, wie ein Benutzer auf der Dropbox-Website umgeleitet wird, um sich zu authentifizieren und das temporäre OAuth-Token zu erhalten.

  • Werfen Sie einen Blick auf Connect Aktion Methode und AuthAsync Aktion Methode in Home-Controller.

Hoffnung, dies hilft Ihnen. Wenn Zweifel bestehen, zögern Sie nicht zu fragen.

+0

Um die Funktionsweise der Auth besser zu verstehen, ist Folgendes richtig. Ich erstelle eine App in Dropbox. Ich verweise auf die ID und das Geheimnis dieser App auf meiner Website, wenn ein Benutzer Berechtigung/Auth gewähren muss. Der Benutzer erteilt die Berechtigung, dass die App Dateien und Ordner verwalten kann. Die Site erhält ein Token vom OAuth-Callback. Habe ich Recht, wenn ich sage, dass die Site die Dateien jetzt jederzeit verwalten kann, ohne dass sie sich erneut authentifizieren müssen? Vielen Dank! –

+1

@RichardBailey du bist richtig. Ich werde empfehlen, dass Sie dort die Dokumentation für OAuth überprüfen, d. H. Das Token, das Sie von DropBox erhalten, was die Ablaufzeit sein wird. Je nach Ablaufzeit müssen Sie möglicherweise das Refresh-Token implementieren. –

+0

Lesen Sie hierzu: _Die API-Zugriffstokens laufen ab? App-Zugriffstoken verfallen effektiv nicht, aber Benutzer können Tokens manuell widerrufen, indem sie in Meine Apps wechseln. Wenn der Nutzer den App-Ordner bei Apps mit App-Ordner-Zugriff löscht, ist das Zugriffstoken Ihrer App nicht mehr gültig. Sie sollten die Autorisierung nur einmal verarbeiten und das Zugriffstoken für alle zukünftigen Aufrufe dieses Benutzers speichern.Wenn ein vorhandenes Zugriffstoken ungültig ist (in welchen Fällen Anrufe 401 zurückgeben), sollten Sie den Benutzer auffordern, Ihre app_-Quelle erneut zu autorisieren: https://www.dropbox.com/developers/support –