Rotaie fornitore OAuth a due gambe?
-
03-10-2019 - |
Domanda
Ho un rotaie 2.3.5 applicazione con un'API voglio proteggere.
Non c'è nessun utente - è un app per webservice stile app (più come un servizio di Amazon di facebook), e così vorrei attuarlo utilizzando un approccio OAuth a due vie
.Ho cercato di utilizzare l'implementazione di server OAuth-plug come un inizio:
http://github.com/pelle/oauth-plugin
... ma è costruito in attesa a tre zampe (web flusso di reindirizzamento) OAuth.
Prima di scavare più in profondità apportare modifiche ad esso per sostenere due gambe, volevo vedere se ci fosse un modo più semplice, o se qualcuno ha avuto un approccio migliore per un'applicazione Rails per implementare essere un fornitore di OAuth a due gambe.
Soluzione
In precedenza, l'unica buona risposta era di incidere circa nel OAuth-plugin per ottenere questo sottoinsieme dell'interazione OAuth. Da allora, l'OAuth-plugin è stato riscritta, e ora è possibile utilizzare verso l'alto, semplicemente aggiungendo il giusto tipo di filtro di autenticazione al controller:
class ApiController < ApplicationController
include OAuth::Controllers::ApplicationControllerMethods
oauthenticate :strategies => :two_legged, :interactive => false
# ...
end
Altri suggerimenti
io non sono a conoscenza di eventuali alternative a OAuth-plug in questo momento, anche se è sicuramente sempre lungo nel dente e maturo per una sostituzione. La mia raccomandazione è quello di generare il server OAuth da oauth-plugin, quindi estrarre le dipendenze dal plugin (che sono solo un valore di moduli paio di metodi) e cestinare il plugin. Poi modificare tutto per le vostre esigenze. OAuth 2 gambe non dovrebbe essere un grosso problema dal momento che è più semplice che in ogni caso 3 zampe, e la mia sensazione è che OAuth-plugin non è utilizzabile in questi giorni, senza modifiche significative in ogni caso.
La carne di OAuth è da tempo stato estratto nella gemma base di OAuth in ogni caso, in modo che l'OAuth-plugin è una sorta di in un limbo. L'architettura fa alcune ipotesi mano pesante su quale sistema di autenticazione che si sta utilizzando, e il codice generato è datato. Quindi, per me, OAuth-plugin serve più come un esempio di come filo tutto in su, piuttosto che qualcosa che la maggior parte dei siti vorrebbe usare fuori dalla scatola.