2012-04-03 2 views
1

Ich habe eine Rails 3.2 App mit Devise zur Authentifizierung von Benutzern.Kann mit Devise nicht abmelden

Im lokalen Entwicklungsmodus funktioniert die Abmeldeverbindung nicht. Es leitet mich zur Startseite um, anstatt die Anmeldeseite anzuzeigen, und die Sitzung wird nicht zerstört. Aber bei Heroku meldet mich der Abmelde-Link ordnungsgemäß ab und zeigt mir die Anmeldeseite an, die die Benutzersitzung zerstört.

In Anwendung .haml Layoutseite, die Verbindung zur Abmelde Seite lautet:

= link_to "Sign Out", destroy_user_session_path, :method => :delete 

Verwandte Routen:

devise_for :users, :controllers => { :sessions => 'sessions' } 

     new_user_session GET  /users/sign_in(.:format)  sessions#new 
      user_session POST  /users/sign_in(.:format)  sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)  sessions#destroy 

ich die Devise::SessionsController-SessionsController in meiner app, wie unten geerbt haben:

class SessionsController < Devise::SessionsController 
    layout 'devise_layout' 
    end 

Jetzt ist der seltsame Fall, dass, nachdem die Sitzung abgelaufen ist ed, das ist standardmäßig 30 Minuten, ich melde mich wieder und klicke auf Abmelden Link, es leitet mich zurück zur Anmeldeseite.

Alles funktioniert gut auf Heroku, es scheitert lokal. Ich kann nicht herausfinden, was auf lokaler Ebene passiert.

Ich denke nicht, dass ich hier etwas falsch mache, weil das gleiche auf Heroku eingesetzt wird und dort gut funktioniert. Was ist los mit dem Entwicklungsmodus auf lokaler?

Antwort

4

Hoppla ... antwortet spät.

Wie auch immer, ich war in der Lage, das Problem herauszufinden. Eigentlich ist die App Sub-Domain-basiert. So habe ich lvh.me:3000 zum Testen auf lokale wie localhost:3000 unterstützt Subdomain nicht verwendet.

Problem umgehen, als Subdomäne "lvh.me" in session_store.rb.

domain: 'lvh.me' 
einzustellen