3

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

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

我可以做这样的事情:

session[:authlogic_sess_name] = @extra_id.id

但是,我不确定 authlogic 会话的名称是什么或如何访问它。

谢谢!

4

2 回答 2

2

为什么不只将值存储在会话中?

session[:extra] = @extra_id.id

Authlogic current_user 只是当前会话中的一个值,由 Rails 堆栈本身管理。

于 2010-01-28T03:47:13.183 回答
0

我同意 Toby 的观点,如果您不需要将这个附加属性放在 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 之前。

于 2017-02-22T22:05:01.403 回答