2016-04-10 7 views
-1

Ich entwickle eine Intranet-Site in Rails 4 mit dem Devise-Juwel. Was ich gerade gerade mache, ist eine Root-Seite, die den Benutzer auffordert, sich anzumelden, um auf die verschiedenen Modulseiten zugreifen zu können.brauchen Vorschläge für eine vereinfachte Benutzerauthentifizierung von Geräten?

Nun zu meiner Frage: Gibt es eine elegantere Möglichkeit, den Benutzer zu authentifizieren, abgesehen davon, dass er auf jeder der Seiten ein if user_signed_in? pflanzt? Ich bin ein bisschen gestört, wenn ich das auf jeder meiner Seiten über das Login-Formular hinaus verwenden muss.

+0

Sie können 'before_action: authenticate_user!' In Ihrem Controller zur Authentifizierung verwenden. –

Antwort

1

Sie können eine Voraktion im Anwendungscontroller einrichten.

class ApplicationController < ActionController::Base 
    before_action :require_login 
end 

Für Regler/Aktionen, die einen signed_in Benutzer nicht benötigen, können Sie die skip_before_action verwenden z.B.

class FooController < ApplicationController 
    skip_before_action :require_login, only: [:index] 
end 
0

Sie können eine Genehmigung gem wie Pundit oder CanCanCan verwenden, die mit Devise integrieren würde und ermöglicht es Ihnen, Einschränkungen Methoden einzurichten usw. auf einer separaten Richtliniendatei.

in diesem Werfen Sie einen Blick

https://github.com/RailsApps/rails-devise-pundit

0

Verwenden Sie ein, bevor der Filter auf dem authenticate_user! Methode:

Controller:

before_filter :authenticate_user!, only: :protected_page 

def protected_page 
# ... 
end 

Wenn ein Benutzer nicht angemeldet ist Sie werden angewiesen, sich anzumelden.

1

Sie können devise Juwel wie unten für die Authentifizierung verwenden:

class ApplicationController < ActionController::Base 

    before_action :authenticate_user! 
    ... 

end 

und wenn Sie Sie die Authentifizierung in einem der Controller-Aktionen können wollen überspringen, indem Sie:

skip_before_filter :authenticate_user! 

oder

skip_before_filter :authenticate_user!, :except => [:action1, :action2]

Verwandte Themen