带有Rails的Sinatra会在每次请求时重置会话

时间:2012-12-15 09:08:03

标签: ruby-on-rails ruby session sinatra

我有一个rails web应用程序,我需要为移动客户端创建API。我为此选择了一个Sinatra Web框架。但是在我的Sinatra应用程序出现问题后,每次请求都会丢失所有数据会话。 我的API看起来像这样(lib / api / core.rb):

module Api
  class Core < Sinatra::Base
    set :session_secret, 'secret'
    enable :sessions

    get '/foo' do
      content_type :json
      session['foo'] = 'some value'
    end

    get '/bar' do
      content_type :json
      session['foo']#everytime is nil
    end

  end
end

在我的route.rb中我写了这个:

constraints :subdomain => 'api' do
  mount Api::Core => '/'
end

我使用Rails 3.2.8,Sinatra 1.3.3

我的问题是如何在请求之间存储数据(需要我进行身份验证)?

1 个答案:

答案 0 :(得分:0)

您的API应该是无状态的。身份验证通常使用与每个请求一起发送的令牌来完成。有关详细信息,请参阅RailsCast #352 Securing an API