我正在尝试像这样显式创建一个会话,UserSession.create(@user, true)
但该会话没有被创建,current_user
是nil
.
但是当我这样做时,我得到<#UserSession: {:unauthorized_record=>""}>
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
?