0

我有一个 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

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

4

1 回答 1

0

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

于 2012-12-15T14:00:46.113 回答