Wie zu verwenden omniauth authentifizierte Aufrufe Dienstleistungen?
Ich habe ein token /secret service mit OmniAuth und speichern kann es für Benutzer, aber ich bin stecken, wie Sie tatsächlich nutzen diese, um einen Dienst aufrufen.
Ist die nächste Sache, die ich gesehen habe auf diese Frage ist hier aber die Art, wie er gelöst ist, dass es fühlt sich nicht richtig an. Ich fühle mich wie OmniAuth wahrscheinlich macht das alles für Sie, wenn Sie wissen, was Sie tun.
Netflix hat ein ziemlich aufwändiger auth-Verfahren, so hoffte ich, Rock, indem OmniAuth zu abstrahieren, mich von all dem.
Gegeben, dass ich einen token und secret für einen Benutzer, wie Sie diese in rufen Sie einen Dienst wie Netflix?
Vielen Dank 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hey, ich bin der Autor des gem OmniAuth. OmniAuth ist gedacht für die Authentifizierung. Im Fall von OAuth-Anbieter wie Netflix, das bedeutet den Austausch einer Anfrage-token für einen access-token, die dann verwendet werden, um ziehen Sie die Benutzer-Informationen aus der API. Diese einmalige Anrufe sind speziell für den jeweiligen Anbieter und sind nicht soll eine generische API-client für die Anbieter gegeben.
Was Sie tun können es verwenden, OmniAuth zu erhalten die Anmeldeinformationen und verwenden Sie dann eine andere spezifische Bibliothek für die Website selbst (wie
ruby-netflix
oder sonst was, ich bin mir nicht sicher, was das beste ist) zu telefonieren. Erhalten Sie die Zugangs-token und-secret, die in der Authentifizierung Tanz durch den Zugriff aufenv['omniauth.auth']['credentials']
, dann verwenden Sie die zum initialisieren der API-client.Können Sie auch verwenden das OAuth-Bibliothek direkt machen, diese Anrufe, aber ich würde empfehlen nur mit Hilfe einer vorhandenen Bibliothek, es wird viel schneller und einfacher. Macht alles Sinn machen?
OmniAuth ist alles über die Authentifizierung, sollten Sie wahrscheinlich Blick auf ein weiteres Kleinod für tatsächliche Anrufe zum service. E. g., für Facebook benutze ich die OAuth2-Juwel und code wie den folgenden:
Beachten Sie, dass Edelsteine für beliebte Dienste wie Facebook und Twitter,, dass Sie verwalten können, die hinter den kulissen Dinge wie das erstellen von tokens, die Verwaltung von URLs, etc. Für Netflix, könnten Sie Folgendes überprüfen:
Beachten Sie auch, dass OmniAuth nur die Renditen der service-Daten für Sie; du bist frei, um es zu speichern und verwenden Sie es, wie Sie (Entwickeln eigene Muster für OmniAuth, dass Sie vielleicht Hintern Köpfe mit, wenn Sie versuchen zu gehen außerhalb der Linien). Die andere Frage, die Sie verknüpft, nicht allzu weit hergeholt zu mir.
request
gibt (oder erstellt) denRack::Request
verwendet wird während der Authentifizierungs-Aufruf. Siehe für Beispiele, diese Zeile und diese Zeile.