【发布时间】:2010-11-14 23:52:52
【问题描述】:
我正在尝试像 UserSession.create(@user, true) 这样明确地创建一个会话,但该会话没有被创建,current_user 是 nil。
但是当我这样做时,我得到 ""}>
us = UserSession.create(@user, true)
RAILS_DEFAULT_LOGGER.info(us.inspect) #=> UserSession: {:unauthorized_record=>""}
我看了一下Authlogic::Session::UnauthorizedRecord,上面写着
请注意这一点,因为 Authlogic 假设您已经确认用户就是他所说的那个人。例如,这是用于在内部持久化会话的方法。 Authlogic 找到具有持久性令牌的用户。在这一点上,我们知道用户就是他所说的那个人,所以 Authlogic 只是用记录创建一个会话。这对于 OpenID 等 3rd 方身份验证方法特别有用。让该方法验证身份,一旦验证,传递对象并创建会话。
这正是我想要做的(我正在使用omniauth 进行身份验证并使用authlogic 创建会话)。
如何解决这个问题,以便在current_user 中获得有效会话?
【问题讨论】:
-
我在遇到同样问题时发现了您的问题。我发现您可能确实拥有一个有效的
current_user,只是无法像您想象的那样访问。查看我对其他类似问题的回答:stackoverflow.com/questions/6638927/…
标签: ruby-on-rails authlogic omniauth