Sinatra (rack.session) сеанс аутентификации - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть приложение Padrino.И я хотел бы разделить сеанс между экземплярами (машинами с балансировкой нагрузки).

Я установил свой собственный секрет, но я не знаю, что еще нужно настроить, чтобы он работал для совместного использования сеанса.Я вижу домен в cookie, где находится имя хоста машины.Я пытался установить его на

set :sessions, :domain => 'mydomain.org'

Но это не работает, но это необходимо?Пожалуйста, что я должен установить, чтобы разделить сеанс между экземплярами приложения.

Спасибо всем

1 Ответ

0 голосов
/ 18 декабря 2018

Одним из способов является помещение информации о файлах cookie в переменную среды, которая запускается каждый раз, когда Sinatra запускает новый экземпляр приложения, например,

require 'securerandom'
require 'encrypted_cookie'

COOKIE_SETTINGS = {
  :path => "/",
  :expire_after => 86400 * 60, # In seconds, 60 days
  :secret => ENV["SESSION_SECRET"] || SecureRandom.hex(64),
  :httponly => true
}

configure do
  cookie_settings = COOKIE_SETTINGS
  cookie_settings.merge!( :secure => true ) if settings.production?
  use Rack::Session::EncryptedCookie, cookie_settings
end
...