/ / Eine generische Omniauth Provider / Strategie für die Entwicklung - Ruby-on-Rails, Ruby, Devise, Omniauth

Ein generischer Omniauth Provider / Strategie für Devise - Ruby-on-Rails, Ruby, Devise, Omniauth

Ich habe eine Omniauth-Strategie als ein Juwel implementiert, aber mir wurde klar, dass es sich nur um eine grundlegende Implementierung des OAuth handelt.

Ich konfiguriere im Gerät. rb wie folgt:

config.omniauth :mystrategy, "key", "secret"

Gibt es einen einfacheren Weg, dies zu tun, ohne das Juwel zu erstellen, könnte ich es einfach in einem Conifg-Block wie konfigurieren

    config.omniauth :mystrategy do |strategy|
strategy.key ="blah"
strategy.authorize_path = "blah"
end

Kannst du mir ein Beispiel zeigen oder mich in die richtige Richtung weisen? Alles, was ich online sah, bestand darin, es als strategisches Juwel zu bauen.

Antworten:

0 für die Antwort № 1

Es klingt, als hättest du eine OAUTH-Strategie geschriebenvon Grund auf neu und verpackt es als ein Juwel. Wenn es nur eine oauth oder oauth2 Strategie ist, die Sie vollständig implementiert haben, denke ich nicht, dass Sie das tun müssen, oder erstellen Sie ein Juwel. Ich bin mir jedoch nicht sicher, ob es irgendeinen Weg gibt, dies nur in einem Config-Block zu tun. Sie sollten es nur mit Hilfe von. Tun können https://github.com/intridea/omniauth-oauth oder https://github.com/intridea/omniauth-oauth2 und Erstellen einer Unterklasse mit einigen Methoden wie in den READMEs beschrieben.

Ich habe das nicht selbst gemacht, aber es ist der Ansatz anderer Omniauth Strategien. Zum Beispiel basiert omniauth-twitter auf der omniauth-oauth-Strategie, wie Sie an seiner Oberklasse sehen können:

https://github.com/arunagw/omniauth-twitter/blob/master/lib/omniauth/strategies/twitter.rb

omniauth-facebook basiert auf der omniauth-oauth2-Strategie:

https://github.com/mkdynamic/omniauth-facebook/blob/master/lib/omniauth/strategies/facebook.rb

Einfach deine Klasse im Omniauth definieren lassen ::Strategien-Namespace - z.B. Omniauth :: Strategies :: Mystrategy sollte genug sein, damit du es als "mystrategy in deiner omniauth config" bezeichnen kannst, wie unter "Eine Strategie erstellen" hier beschrieben: https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide