【问题标题】:Rails and Sinatra shared session not workingRails 和 Sinatra 共享会话不起作用
【发布时间】: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


    【解决方案1】:

    这可能有点太简单了,但你的 sinatra secret_key 可能只是有一个尾随换行符或什么的? 您在 rails 示例中调用 chomp,但在 sinatra 示例中没有。

    注意注意using flash,如果你能正常工作

    【讨论】:

    • 我不敢相信我错过了。那解决了它。感谢您了解这一点。
    • 啊,太棒了,我担心我指出了明显的问题,很高兴我能提供帮助。
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2012-08-24
    • 2010-09-27
    • 2013-10-29
    • 2015-08-14
    相关资源
    最近更新 更多