2017-10-07 2 views
0

Ich erstelle eine Desktop-Anwendung, die Spotify oauth api verwendet. Ich verwende den impliziten Zuweisungsablauf, der hier beschrieben wird: https://developer.spotify.com/web-api/authorization-guide/#implicit_grant_flowHTTPS auf localhost für OAuth für eine Desktop-Anwendung

Meine Idee ist, einen "Authentifizieren" -Button zu haben, auf den Sie klicken und Ihr Browser öffnet. Sie loggen sich ein oder genehmigen die Verbindung mit Spotify. Dann sendet es Sie an eine Weiterleitungs-URL.

Ich möchte diese Umleitung URL auf 127.0.0.1:58212 oder einen Port auf dem Loopback-Gerät festlegen.

Meine Frage ist, sollte ich https dafür verwenden?

Ich bin in Richtung Ja geneigt. Eine, weil das Zugriffstoken sicher sein muss, und ich glaube, dass andere Benutzer auf dem System die Nachricht möglicherweise lesen können, wenn es gesendet wird, und zwei, weil in der Zeit, die der Benutzer brauchte, um den Port zu übernehmen.

Also ich möchte SSL für die Verschlüsselung der Nachricht, und ich möchte sicherstellen, dass ich tatsächlich mit meiner App sprechen.

Wie erzeuge ich Zertifikate in dieser Situation? Ich denke, dass jede Instanz der Anwendung ein eigenes Zertifikat haben muss, und ich muss den Computer irgendwie informieren, um dieses Zertifikat während der Lebensdauer der Anwendung zu vertrauen.

Ich könnte auch das Zertifikat während der Installation generieren und einen Schritt während der Installation machen, die das System diesem Zertifikat vertrauen lässt.

Denke ich über den richtigen Weg nach, oder mache ich das alles falsch?

Ich benutze Elektronen und Express in JavaScript, um meine Anwendung zu schreiben.

Vielen Dank für jeden Hinweis.

Antwort

0

Der beste Weg, Oauth sicher mit installierten Anwendungen wie Desktop-Anwendungen zu verwenden, ist die Verwendung des Oauth 2-Ablaufs für installierte Anwendungen. Diese Option müsste jedoch vom Dienstanbieter implementiert werden. Google bietet diese Option an.

https://developers.google.com/api-client-library/python/auth/installed-app

Leider haben viele Dienste OAuth2 nicht implementieren.

Um Oauth 1.0 mit installierten Anwendungen zu verwenden, zeigt der Dienstanbieter dem Benutzer den Authentifizierungscode an, den der Benutzer dann kopieren und in die Desktopanwendung einfügen kann, anstatt zu einer callback_url zurückzukehren. Überprüfen Sie heraus, Trello Ouath Integration, die dies ermöglicht.

Der Web-API-Fluss, den Sie erreichen möchten, funktioniert bei Desktop-Apps nicht. Die Umleitungsuri 127.0.0.1:port ist deine lokale URI. Der Dienstanbieter benötigt mindestens Ihre öffentliche IP-Adresse, um den Datenfluss an Ihr System zurückzuleiten.

0

AFAIK, für einen Desktop oder eine native App ist es viel besser, den Oauth-Autorisierungscodeablauf zu implementieren. Die implizite Berechtigung soll in einem Gerätebrowser und nicht in einer Webansicht verwendet werden.

Wenn Ihre Anwendung einen Webdienst zum Herstellen einer Verbindung verwendet, benötigt Ihr Webdienst eine Weiterleitungs-URL, die https verwendet. Glücklicherweise stellen die meisten Hosting-Plattformen wie Heroku Ihnen diese kostenlos zur Verfügung (andernfalls müssen Sie ein SSL-Zertifikat kaufen, das sehr viel Arbeit kostet).

Beim Autorisierungscode-Ablauf muss ein Token den Client nicht sehen, er ist alles im Backend gespeichert.

Die meisten Dienste ermöglichen es Ihnen, auf localhost mit http zu testen. Ich schrieb eine tutorial, die Ihnen eine Anleitung über den Fluss geben könnte.

Verwandte Themen