Использование Rack::Session::Datamapper

Гем mkristgan rack_datamapper говорит, что его "можно обернуть для использования в определенной среде, т.е. Rack:: Сессия::Datamapper".

К сожалению, я недостаточно знаю о Ruby, чтобы выполнить эту задачу — модули/классы в Ruby все еще выше моей головы (исходя из PHP).

Может ли кто-нибудь предложить помощь в использовании Rack_datamapper для реализации Rack::Session::Datamapper?

Возможно, вы все равно не захотите этого делать.

Ответ ниже отличный, но при ближайшем рассмотрении я понял, что все равно не должен этого делать. Вместо этого я помещаю user_id, ip и имя (для удобства) в файл cookie и защищаю его.


person arbales    schedule 18.10.2009    source источник


Ответы (1)


Этот драгоценный камень должен помочь:

В Синатре просто добавьте:

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

и использовать объект session[] по желанию.

person phil pirozhkov    schedule 04.11.2009
comment
Спасибо, но я понял, что должен просто указать user_id и имя внутри подписанного файла cookie. - person arbales; 16.11.2009
comment
да, это хорошо, пока кто-то не попытается использовать чужой user_id и захватить другой сеанс. остерегаться! - person phil pirozhkov; 18.11.2009