Ruby on Rails:如何在authlogic会话中存储更多数据
问题描述:
我正在使用Authlogic对用户进行身份验证。Ruby on Rails:如何在authlogic会话中存储更多数据
我明白如何创建和使用会话,但想要在由authlogic创建的current_user会话中存储额外的id变量。
可我只是做这样的事情:
session[:authlogic_sess_name] = @extra_id.id
但是,我不知道是什么authlogic会话虽然命名或如何访问它。
谢谢!
答
你为什么不把这个值存储在会话中?
session[:extra] = @extra_id.id
Authlogic current_user只是当前会话中的一个值,由Rails堆栈自身管理。
答
我同意托比,如果你不需要这个额外的属性在AuthLogic的UserSession对象,那么它可能会更简单的存储在会话哈希本身的值。
但是在我的具体情况下,也许在你的情况下,我在UserSession记录上特别需要信息,而不是会话哈希,因为我想在UserSession模型的回调中访问它,其中“会话“不可用。
下面是描述如何存储附加属性上UserSession旧的博客文章: http://railsblog.kieser.net/2010/03/authlogic-custom-logins-and-persisting.html
编辑:我没有用这种方法我自己的运气。为了完成会话散列所需的信息,我将该逻辑放在控制器中而不是模型中。
AuthLogic实际上有一些执行控制器方法的回调。例如,AuthLogic会调用last_request_update_allowed?如果您的控制器在设置last_request_at之前对此作出响应。
是的,我现在正在那样做。我想我只是想知道如何操作和添加东西到current_user对象。但没有必要。 – djburdick 2010-01-28 16:42:12