authlogic e oauth-plugin
-
05-07-2019 - |
Domanda
qualcuno ha testato - authlogic funziona con oauth-plugin ( https://github.com/pelle / oauth-plugin ) o no?
Soluzione
La risposta breve è no . Attualmente sto integrando la fornitura di servizi di oauth-plugin con il mio sistema di autenticazione (che precede authlogic , act_as_authenticated e tutto il resto).
Il servizio di fornitura di servizi ?? oauth-plugin funziona tramite un generatore di codice che genera due controller, che vengono quindi collegati in alcuni file di libreria nel plug-in. Tutti questi file prevedono un metodo di classe login_required
con la stessa semantica utilizzata da act_as_authenticated .
authlogic non fa assolutamente ipotesi sui tuoi controller, quindi non funzionerà immediatamente con oauth-plugin , tuttavia quella decisione di progettazione significa anche che lo farà è abbastanza facile strutturare i controller nel modo previsto. Pertanto dovrebbe essere (forse banalmente) facile creare uno spessore per supportare oauth-plugin .
Comunque nel mio caso ho deciso di avviare il generatore per estrarre ciò di cui ho bisogno dal plugin ed eliminare il plugin stesso. Il motivo principale per cui lo sto facendo è che non ho esplicitamente il metodo login_required
nel mio sistema di autenticazione, quindi dovrei scimmiettare la patch con la scimmia per farlo funzionare. In secondo luogo, ci sono molte cose nel plugin che non mi servono. In terzo luogo, la maggior parte delle cose che sono veramente a livello di libreria sono già state astratte nella gemma oauth corretta, quindi le cose che vivono nella directory oauth-plugin si trovano in questa weird no mans land tra il codice generato e la libreria attuale.
Altri suggerimenti
Sono in procinto di farlo funzionare ora. Ho appena realizzato il mio usando i metodi authlogic per farlo funzionare bene. (Sto cercando di far funzionare un provider, quindi authlogic-oauth non sembra giusto per me)
Modificherò mentre vado
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 ha un componente aggiuntivo appositamente sviluppato per questo, che può essere trovato qui .