2014-01-23 7 views
8

Ich lese Devise Gems Initialisierungsdatei (config/initializers/deviser.rb) und habe es schwer, diesen Teil zu verstehen.Was bedeutet "Sitzungsspeicher überspringen" in Devise Gem?

# By default Devise will store the user in session. You can skip storage for 
# :http_auth and :token_auth by adding those symbols to the array below. 
# Notice that if you are skipping storage for all authentication paths, you 
# may want to disable generating routes to Devise's sessions controller by 
# passing :skip => :sessions to `devise_for` in your config/routes.rb 

config.skip_session_storage = [:http_auth] 

Der Grund, warum ich bei dieser Suche ist, weil ich versuche, api basierte Token-Authentifizierung zu verwenden, wobei in diesem Fall muss ich diese Konfigurationszeile ändern:

config.skip_session_storage = [:http_auth, :token_auth] 

Kann jemand erklären, Was sagen die Kommentare?

Antwort

2

Ganz einfach, teilt es Devise mit, den Benutzer nicht in der Sitzung zu speichern. Hier ist eine andere Erklärung dafür:

skip_session_storage +: Standardmäßig wird Devise den Benutzer in Sitzung speichern. Sie können den Speicher für http und token auth überspringen, indem Sie Werte an array anhängen: skip_session_storage => [: token_auth] oder: skip_session_storage => [: http_auth,: token_auth], ist standardmäßig auf skip_session_storage => [: http_auth] gesetzt.

Devise::Models::Authenticatable

Für Ihre Absichten und Zwecke, würde ich Session-Caching mit Warden/deaktivieren Devise; Ich glaube, dass es bestimmte APIs beeinträchtigt (nehmen Sie mein Wort dafür nicht). Ich hoffe, das hilft.

1
# Notice that if you are skipping storage for all authentication paths, you 
# may want to disable generating routes to Devise's sessions controller by 
# passing :skip => :sessions to `devise_for` in your config/routes.rb 

Dieser Teil zeigt Ihnen, dass, wenn Sie die Verwendung von Sitzungen für alle Authentifizierungsmethoden wie in der folgenden Zeile deaktivieren:

config.skip_session_storage = [:http_auth, :token_auth] 

dann Sie nicht über die Routen zu den Sitzungen müssen automatisch generiert durch devise_for standardmäßig. So sollten Sie folgendes in Ihrem config/routes.rb hinzufügen:

devise_for :users, :skip => :sessions 

Hoffe, es hilft ein wenig.