我能够让Rack::Session::DataMapper,Padrino和Omniauth一起工作。主要目标是在主应用程序和管理部分中拥有相同的会话和用户,并拥有非常持久的会话。选项set :sessions
已停用,因此我将/padrino-core-0.9.23/lib\padrino-core/application.rb:203
use Rack::Flash if flash?
修改为不需要sessions?
。另外,我修补/padrino-admin-0.9.23/lib/padrino-admin/access_control.rb:15
以禁用会话。
这是我的应用代码:
/admin/app.rb:
set :session_id, 'superapp.pro'.to_sym
use Rack::Session::DataMapper
/app/app.rb:
set :session_id, 'superapp.pro'.to_sym
use Rack::Session::DataMapper
/lib/omniauth_init.rb:
use Rack::Session::DataMapper
问题是:有没有更好的方式与Omniauth建立自定义机架会话商店?我对使用Rack::Session::DataMapper
三次感到不舒服。
答案 0 :(得分:0)
迟到的答案,但我相信如果你提出:
Padrino.before_load do
Padrino.use Rack::Session::DataMapper
end
在你的“config / boot.rb”中,你会没事的,也不需要重复。