使用Rack::Session::Datamapper

3

mkristgan的rack_datamapper宝石说它“可以被包装以在特定环境中使用,即Rack::Session::Datamapper”。

不幸的是,我对Ruby还不太了解,无法完成这个任务 - Ruby中的模块/类仍然超出了我的理解范围(来自PHP)。

有人能提供使用rack_datamapper来实现Rack::Session::Datamapper的帮助吗?

你可能不想这样做。

下面的答案很好,但仔细考虑后,我意识到我不应该这样做。相反,我将用户ID,IP和名字(为方便起见)放在一个cookie中并加密保护。

1个回答

5

这个宝石 应该会有帮助:

在Sinatra中只需添加:

use Rack::Session::Moneta,
   store: Moneta.new(:DataMapper, setup: (ENV['DATABASE_URL'] || "sqlite://#{Dir.pwd}/development.db"))

并且随意使用session[]对象。


谢谢,但我意识到我应该将用户ID和名字放在签名的cookie中。 - arbales
2
是的,这很好,直到有人试图操纵别人的user_id并接管会话。小心! - phil pirozhkov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接