Ruby on Rails:如何在会话中为authlogic存储其他数据

时间:2010-01-28 00:36:54

标签: ruby-on-rails authlogic

我正在使用Authlogic对用户进行身份验证。

我了解如何创建和使用会话,但希望在authlogic创建的current_user会话中存储额外的id变量。

我可以这样做:

session[:authlogic_sess_name] = @extra_id.id

但是,我不确定authlogic会话的名称或访问方式。

谢谢!

2 个答案:

答案 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之前对此作出响应。