Wie benutze ich omniauth um authentifizierte Aufrufe von Diensten zu tätigen?

8

Ich habe ein Token / Secret von einem Dienst erhalten, der OmniAuth verwendet, und kann es für Benutzer speichern, aber ich bin nicht sicher, wie ich diese verwenden kann, um einen Dienst anzurufen.

Das nächste, was ich zu dieser Frage gesehen habe, ist hier So wie er es gelöst hat, fühlt es sich nicht richtig an. Ich habe das Gefühl, dass OmniAuth wahrscheinlich alles für dich tut, wenn du weißt, was du tust.

Netflix hat einen ziemlich engagierten Auth-Prozess , also habe ich gehofft, all das mit OmniAuth umgehen zu können abstrahiere mich von all dem.

Wenn ich einen Token und ein Geheimnis für einen Benutzer habe, wie kann ich diese verwenden, um einen Dienst wie Netflix aufzurufen?

Vielen Dank:)

    
Kevin Davis 15.04.2011, 09:50
quelle

2 Antworten

19

Hey, ich bin der Autor des OmniAuth-Edelsteins. OmniAuth soll für den Authentifizierungsprozess verwendet werden. Im Fall von OAuth-Providern wie Netflix bedeutet dies, dass ein Anforderungstoken für ein Zugriffstoken ausgetauscht wird, das dann zum Abrufen von Benutzerinformationen aus der API verwendet wird. Diese einmaligen Anrufe sind speziell für jeden Anbieter konzipiert und sind nicht , um ein generischer API-Client für den angegebenen Provider zu sein.

Was Sie tun können, OmniAuth verwenden erhalten die Anmeldeinformationen und dann eine andere spezifische Bibliothek für die Website selbst (wie ruby-netflix oder irgendetwas anderes, ich bin mir nicht sicher, was die beste ist ist) um Anrufe zu tätigen. Sie können das Zugriffstoken und -geheimnis abrufen, das beim Authentifizierungstanz abgerufen wurde, indem Sie auf env['omniauth.auth']['credentials'] zugreifen und diese dann zum Initialisieren des API-Clients verwenden.

Sie können die OAuth-Bibliothek auch direkt für diese Aufrufe verwenden, aber ich würde dringend empfehlen, nur eine vorhandene Bibliothek zu verwenden, da dies viel schneller und einfacher ist. Macht das alles Sinn?

    
Michael Bleigh 24.04.2011, 20:36
quelle
7

Bei OmniAuth dreht sich alles um Authentifizierung. Sie sollten sich wahrscheinlich ein anderes Juwel ansehen, um den Service tatsächlich anzurufen. ZB verwende ich für Facebook das OAuth2-Juwel und Code wie folgt:

%Vor%

Beachten Sie, dass es Edelsteine ​​für populäre Dienste wie Facebook und Twitter gibt, die die Dinge hinter den Kulissen verwalten können, wie das Erstellen von Token, das Verwalten von URLs usw. Für Netflix können Sie Folgendes überprüfen:

Denken Sie auch daran, dass OmniAuth nur die Servicedaten an Sie zurückgibt; Sie können es speichern und so verwenden, wie Sie möchten (Devise hat sein eigenes Muster für OmniAuth, mit dem Sie vielleicht Schluss machen, wenn Sie versuchen, die Linien zu verlassen). Die andere Frage, die du verlinkt hast, scheint mir nicht zu weit hergeholt zu sein.

    
Michelle Tilley 18.04.2011 05:39
quelle