我能够让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
三遍。