【发布时间】:2014-05-05 13:02:03
【问题描述】:
我正在尝试在 Rails 3.2 应用程序和 Sinatra 应用程序之间共享会话,但它不起作用。如果我去domain.com/rails并登录,它会成功登录。然后我转到domain.com/sinatra,显然该会话尚未共享。在那之后,如果我再次尝试访问domain.com/rails,我就会以某种方式被注销。关于为什么这可能不起作用或为什么我通过访问 sinatra 应用程序而退出的任何想法?
config/initializers/secret_token.rb
secret_file_path = "#{Rails.root}/session_key"
secret_key = "SECRET_KEY"
if File.exist? secret_file_path
secret_key = File.read(secret_file_path).chomp
end
Wtf::Application.config.secret_token = secret_key
config/initializers/session_store.rb
Wtf::Application.config.session_store :cookie_store, key: 'KEY_NAME'
config.ru
require "rack/jekyll"
builder = Rack::Builder.new do
map '/' do
run Rack::Jekyll.new(destination: '/_site')
end
require ::File.expand_path('/rails/config/environment', __FILE__)
map "/rails" do
run RAILSAPP::Application
end
require '/sinatra_app/app.rb'
map "/sinatra" do
secret_file_path = '/rails/session_key'
secret_key = "SECRET_KEY"
if File.exist? secret_file_path
secret_key = File.read secret_file_path
end
use Rack::Session::Cookie, key: "KEY_NAME",
secret: secret_key
run SinatraApp
end
end
run builder
【问题讨论】:
标签: ruby-on-rails ruby sinatra