17
class CompatibleCookieStore < ActionDispatch::Session::CookieStore
def initialize(app, options = {})
super(app, options)
@old_key = options[:old_session_key]
end
def get_cookie(env)
jar = cookie_jar(env)
if jar.key?(@key)
jar.encrypted[@key]
else
jar.signed[@old_key]
end
end
def set_cookie(env, session_id, cookie)
jar = cookie_jar(env)
jar.encrypted[@key] = cookie
if jar.key?(@old_key)
jar.delete(@old_key)
end
end
def cookie_jar(env)
request = ActionDispatch::Request.new(env)
request.cookie_jar
end
end
Rails.application.config.session_store :compatible_cookie_store,
key: '_fril_user_session',
expire_after: 1.month,
domain: ‘.fril.jp’,
old_session_key: '_fril_web_session'
શମ૾