2017-07-07 4 views
0

SO ...Rails dynamische Regler Authentication (Devise + Cookie oder Token + Header)

I haben derzeit 2 Schienen-Controller: eine für devise Authentifizierung und eine andere für Token-Authentifizierung. Ich versuche, einen neuen Controller zu erstellen, der verwendet werden kann, um die Geräteauthentifizierung zu verwenden, wenn ein Cookie vorhanden ist, oder die Tokenauthentifizierung mithilfe von Headern, wenn der Cookie nicht vorhanden ist.

Mein Instinkt ist, dass mein neuer Controller zwei Variablen hat, eine von jeder Art von Authentifizierungs-Controller und eine before_action oder before_filter, die nach dem Cookie sucht und die Anfrage an den richtigen Controller weiterleitet.

Beachten Sie, dass mein Gerät Authentifizierung Controller hat eine before_action :authenticate_user! und mein Token-Authentifizierung-Controller hat eine before_action :authenticate_using_headers, aber ich möchte nur 1 genannt je nach der Art, die meine API ist betroffen.

Jeder Einblick, wie ich dies elegant mit minimalen Änderungen an meinen vorhandenen Controllern erreichen kann, wird geschätzt.

Antwort

0

Wenn authenticate_using_headers kehrt nil oder false, wenn die Authentifizierung fehlschlägt, können Sie dies in Ihrem application_controller

def authenticate_token_or_user! 
    authenticate_using_headers || authenticate_user! 
end 

dann in Controller, auf denen Sie beide aktivieren möchten:

before_filter :authenticate_token_or_user! 
Verwandte Themen