Поскольку это один из первых результатов Google для данной темы, и он не содержит реальных примеров, вот простой способ создать собственный SESSION_ID. Мы полагаемся на вероятность и криптографически безопасную случайность, чтобы наши идентификаторы были уникальными.
Это единственное, что я положил в свои куки. Я храню все остальные данные на внутреннем сервере, чтобы никто не мог их изменить.
require 'sinatra'
require 'securerandom'
# The configuration here is just an example. Use your own secret, etc.
use Rack::Session::Cookie, :key => 'SESSION_ID',
:expire_after => 60*60*24, # == one day
:secret => 'This one time, at band camp...'
before do # Before every request, make sure they get assigned an ID.
session[:id] ||= SecureRandom.uuid
end
get '/' do # Show off your new ID.
"Your ID is #{session[:id]}"
end