2

これを行う方法を説明する多数の投稿を見つけました。これらはすべて、適切な環境構成ファイルに次のように記述します。

config.action_controller.session[:domain] = '.localhost'

ただし、これを行うと、サインインしようとすると(デバイスを使用しています)、次のエラーで失敗します:

ActionController::InvalidAuthenticityToken

他の人が同じ問題を投稿しているのを見ます (セッション [:ドメイン] を設定するためのアドバイスを提供しているさまざまなブログのコメント セクションに)。それ。

何か案は?

4

2 に答える 2

1

config/initializers/set_session_domain.rb に次のスニペットがあります。

module ActionControllerExtensions
  def self.included(base)
    base::Dispatcher.send :include, DispatcherExtensions
  end

  module DispatcherExtensions
    def self.included(base)
      base.send :before_dispatch, :set_session_domain
    end

    def set_session_domain
      domain = @env['HTTP_HOST'].gsub(/:\d+$/, '').gsub(/^[^.]*/, '')
      @env['rack.session.options'].update :domain => domain
    end
  end
end

ActionController.send :include, ActionControllerExtensions

すべてがうまく機能します。

于 2010-09-19T11:32:29.253 に答える
1

これがあなたの問題に関連しているかどうかはわかりませんが、セッション ドメインを単に '.localhost' に設定しようとしていますか? これは、Cookie を設定しようとしているトップレベル ドメインであるため、効果的に機能しません。

http://www.ruby-forum.com/topic/181650#794923を参照してください

于 2010-09-19T10:19:47.057 に答える