我正在使用Authlogic对用户进行身份验证。
我了解如何创建和使用会话,但希望在authlogic创建的current_user会话中存储额外的id变量。
我可以这样做:
session[:authlogic_sess_name] = @extra_id.id
但是,我不确定authlogic会话的名称或访问方式。
谢谢!
答案 0 :(得分:1)
为什么不将值存储在会话中?
session[:extra] = @extra_id.id
Authlogic current_user只是当前会话中的一个值,由Rails堆栈本身管理。
答案 1 :(得分:0)
我同意Toby的意见,如果您不需要将此附加属性放在AuthLogic的UserSession对象上,那么将值存储在会话哈希本身中可能会更简单。
但是在我的具体情况下,也许在你的情况下,我在UserSession记录上特别需要的信息而不是会话哈希,因为我想在UserSession模型的回调中访问它,其中“session”不可用。
以下是一篇较旧的博文,介绍如何在UserSession上存储其他属性: http://railsblog.kieser.net/2010/03/authlogic-custom-logins-and-persisting.html
编辑:我自己对这种方法运气不太好。为了从会话哈希中完成需要信息的事情,我将该逻辑放在控制器而不是模型中。AuthLogic实际上有一些执行控制器方法的回调。例如,AuthLogic会调用last_request_update_allowed吗?如果您的控制器在设置last_request_at之前对此作出响应。