1

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

4

1 回答 1

0

迟到的答案,但我相信如果你把:

Padrino.before_load do
    Padrino.use Rack::Session::DataMapper
end

在你的“config/boot.rb”中你会没事的,不需要重复。

于 2012-02-28T03:17:38.747 回答