我有一个Rails应用程序,它使用Devise和activerecord-session_store gem,并采用最低限度的设置(除了默认设置之外没有什么).
我正在try 使用存储在cookie中的值在activerecord-ession_store使用的sessions
表中手动查找相应的会话记录.
问题是,我从Cookie中获得的会话值似乎没有"按原样"存储在数据库中,因此我不能简单地执行Find_By来查找它匹配的记录.
或者换句话说:
Cookie值如下所示: A5a879b4f923d2eea7707cf8ce28cd80
这是sessions
榜单中的session_id
名的样子:
2::801e4371783f192b4ee95be9def08bf17daaa1ebeed589dbdfeeb8742e2dd9f6
sessions
表中的值似乎被加密了,我找不到如何匹配这两个值的信息.
值得一提的是,这款应用程序运行正常,因此它以某种方式在内部进行匹配.我正在try 为不同的用例匹配会话ID.
我曾try 使用ActiveRecord::SessionStore::Session
公开的find_by_session_id
方法,希望它能进行一些转换并神奇地找到正确的会话,但它似乎只是活动记录中的标准Find_By,因为字符串值不同,所以不起作用.
我的猜测是,我需要以某种方式将来自cookie的值转换为将数据保存在会话id列中的格式,然后才执行findby,但我不确定如何进行.
您知道如何使用Cookie值找到正确的会话吗?谢谢