2012-04-03 14 views
1

私は、ユーザーを認証するためのDeviseを備えたRails 3.2アプリを持っています。Deviseを使用してサインアウトできない

ローカル開発モードでは、サインアウトリンクが機能しません。サインインページを表示せずにホームページにリダイレクトされ、セッションは破棄されません。しかし、Herokuでは、Sign-outリンクをクリックすると適切にログアウトされ、ユーザーセッションを破壊するSign-inページが表示されます。

アプリケーション.hamlレイアウトページで

、サインアウトするページですリンク:

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

関連路線:

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 

私は以下のように私のアプリでSessionsControllerDevise::SessionsControllerを継承しています:

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

今、奇妙なケースは、セッションが終了した後デフォルトは30分です。もう一度ログインして[サインアウト]リンクをクリックすると、サインインページに戻ります。

Herokuではすべて正常に動作しますが、ローカルでは失敗します。私は地元で起こっていることを理解することができません。

私は、同じことがヘロクに配備され、そこでうまく働いているので、私はここで何か間違っているとは思わない。ローカルの開発モードで何が問題になっていますか?

答えて

4

おっと...回答が遅れています。

とにかく、私は問題を把握することができました。実際、アプリはサブドメインベースです。だからlvh.me:3000ローカルでのテストのためにlocalhost:3000はサブドメインをサポートしていませんでした。

回避策は"lvh.me" in session_store.rb.

domain: 'lvh.me' 
としてサブドメインを設定することです
関連する問題