Sinatra会话缓存

时间:2013-11-27 12:36:13

标签: ruby session sinatra rack

我在理解如何让Sinatra缓存会话方面遇到了一些麻烦。当我启动多个应用程序实例(ala Puma或多个Thins)时,会出现此问题。

我要求Sinatra(1.4)使用这样的会话:

 enable :sessions
 set :session_secret, 'secret sauce'
 set :protection, except: :session_hijacking

 $connections = []
 set connections: $connections

我已将$connections留在那里以证明此应用正在使用服务器发送的事件,以防有任何相关性。

我是他们使用Persona(Mozilla)来支持登录/身份验证,并最终在Sinatra的会话中存储登录的电子邮件:

session[:auth_email] = data["email"]

Persona给我data

我无法解决的问题是我如何要求Sinatra将会话数据存储在持久存储中(理想情况下是Redis),以便可以回收应用程序而不会丢失会话状态(我已经完成了之前使用Ramaze Ramaze::Cache.options.session = Ramaze::Cache::Redis.using()

1 个答案:

答案 0 :(得分:1)

结帐Moneta

该项目的Github页面提供了如何进行设置的示例,并且非常容易与Sinatra集成。