Синатра очищает сессию на посту

enable :sessions
set :session_secret, 'secret'

post '/login' do
        session[:loggedInUser] = jsondata['username'].to_s
        puts session[:loggedInUser] + " is the session"
end

На данный момент все хорошо. Когда я читаю сессию так:

get '/debug' do
    session.inspect
end

Это все там. Но тут возникает проблема. Когда я перейду к другому почтовому запросу позже:

post '/foo' do
    # do nothing
end

Сеанс очищается.

Почему? Это ошибка?

РЕДАКТИРОВАТЬ

Я сузил проблему: я перехожу через Sinatra через nginx, чтобыhttp://app.local/backend - это когда проблема возникает. Если я прогоню Синатру черезhttp://localhost:4567 все работает как положено.

РЕШЕНИЕ

использованиеRack::Session::Cookie вместо по умолчаниюenable :sessions:

use Rack::Session::Cookie, :key => "rack.session",
:path => "/backend"
# etc

изСинатра FAQ:

Если вам нужно установить дополнительные параметры для сессий, такие как дата окончания срока действия, используйте Rack :: Session :: Cookie напрямую вместо enable: session:

Ответы на вопрос(4)

Ваш ответ на вопрос