Ответ 1
Вы используете оба
enable :sessions
который делает сеансы настройки cookie Sinatra, и
use Rack::Session::Cookie, ...
который также добавляет сеансы к вашему приложению, поэтому вы получаете два экземпляра Rack::Session::Cookie
в стеке промежуточного программного обеспечения.
Предупреждение генерируется промежуточным программным обеспечением сеанса, включенным Sinatra. По умолчанию Sinatra не создает секрет сеанса при работе в среде разработки (в классическом режиме, по крайней мере, для модульных приложений), и поэтому Rack генерирует предупреждение в процессе разработки.
Вам может потребоваться только один из двух способов включения сеансов, использование двух вместе может привести к их взаимодействию неожиданными способами.
Чтобы избежать предупреждения, вы можете явно установить секрет для сеанса Sinatra с помощью опции session_secret
:
enable :sessions
set :session_secret, '*&(^B234'
Вы также можете передать хэш-параметры в качестве аргумента при включении сеансов. Вместо enable :sessions
выполните следующее:
set :sessions, key: 'N&wedhSDF',
domain: "localhost",
path: '/',
expire_after: 14400,
secret: '*&(^B234'