Authlogic und Oauth-Plugin
-
05-07-2019 - |
Frage
Wird jemand getestet - wird Authlogic mit OAuth -Plugin (https://github.com/pelle/oauth-plugin) oder nicht?
Lösung
Die kurze Antwort lautet nein. Ich integriere gerade OAuth-Plugin's Serviceanbieter mit meinem eigenen Auth -System (das vorherrscht Authlogic, ACTS_AS_Authenticated und den ganzen Rest).
OAuth-Plugin Serviceanbieter arbeitet mit einem Codegenerator, der zwei Controller generiert, die dann in einige Bibliotheksdateien im Plugin verbunden werden. Alle diese Dateien erwarten a login_required
Klassenmethode mit der gleichen Semantik wie ACTS_AS_Authenticated Verwendet.
Authlogic macht überhaupt keine Annahmen über Ihre Controller, sodass es nicht mit dem Box funktioniert OAuth-Plugin, Diese Entwurfsentscheidung bedeutet jedoch auch, dass es ziemlich einfach ist, Ihre Controller auf die erwartete Weise zu strukturieren. Daher sollte es (vielleicht trivial) einfach sein, einen Schim zu bauen, um sie zu unterstützen OAuth-Plugin.
In meinem Fall habe ich mich jedoch entschlossen, den Generator auszuführen, um das zu extrahieren, was ich aus dem Plugin benötige und das Plugin selbst löschen kann. Der Hauptgrund, warum ich das tue, ist, dass ich das explizit nicht habe login_required
Methode in meinem Auth -System, also müsste ich die Lib der Affen patchieren, um sie zum Laufen zu bringen. Zweitens gibt es viele Sachen im Plugin, das ich einfach nicht brauche. Drittens wurden die meisten Dinge, die wirklich Bibliotheksebene sind OAuth Juwel richtig, also das Zeug in der OAuth-Plugin Das Lib -Verzeichnis befindet sich in diesem seltsamen No Mans Land zwischen dem generierten Code und der tatsächlichen Bibliothek.
Andere Tipps
Ich bin gerade dabei, dies gerade zum Laufen zu bringen. Ich habe gerade meine eigenen mit den Authlogic -Methoden gerollt, damit es gut spielen. (Ich versuche, einen Anbieter zum Arbeiten zu bringen, also scheint der Authlogic-Oauth für mich nicht richtig zu sein.)
Ich werde bearbeiten, während ich gehe
def logged_in?
return true if current_user
end
def login_required
return true if logged_in?
store_location
redirect_to new_user_session_path and return false
end
Authlogic hat ein Add-On, das speziell dafür entwickelt wurde, das gefunden werden kann hier.