Por alguna razón, las variables de sesión no se están configurando en mi aplicación. Estoy usando Sinatra 1.2.1.Sinatra y variables de sesión que no se configuran
Aquí es una pieza de código: no se está estableciendo
module GitWiki
class App < Sinatra::Base
configure do
enable :sessions
set :app_file, __FILE__
set :root, File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
set :auth do |bool|
condition do
redirect '/login' unless logged_in?
end
end
end
helpers do
def logged_in?
not @user.nil?
end
end
error PageNotFound do
page = request.env["sinatra.error"].name
redirect "/#{page}/edit"
end
before do
content_type "text/html", :charset => "utf-8"
@user = session[:user]
end
get "/login/?" do
erb :login
end
post "/login" do
user = User.get
if user.authenticate(params[:username], params[:password])
session[:user] = params[:username]
p session # => {:user=>"root"}
else
# AZIZ! LIGHT!
end
redirect '/'
end
get "/" do
p session # => {}
redirect "/" + GitWiki.homepage
end
# ...
end
end
Como se puede ver, session[:user]
, o más bien el hash sesión se restablece después de cada petición. ¿Alguien sabe lo que está pasando, por favor?
de Doc de Sinatra: "Sin embargo, dado que este secreto cambiará con cada inicio de su aplicación, es posible que desee establecer el secreto usted mismo ... " – imwilsonxu
mucho mejor, gracias aziz. – pje
Me gusta la "NOTA", ¿sabe por casualidad quién solucionará esto con 'Rack :: Session :: Pool'? –