我希望了解在使用Rails/Devise登录用户时发生的实际情况。
我创建了一个最小的Rails应用程序,安装了Devise并创建了一个User
Devise模型。一切正常,当我使用“记住我”功能登录时,我得到了一个会话cookie,就像预期的那样。
现在让我困扰的是:Rails如何处理浏览器通过cookie传递的会话信息?
我天真地期望某些信息存储在数据库中,但我找不到它们的位置。没有session
表,Users
中也没有会话列,在tmp
目录中也找不到任何有用的内容。
请注意,重新启动服务器不会终止我的会话。这是当然可以预料的,但现在我真的想知道这里发生了什么样的魔法?
换句话说:服务器如何检查cookie的有效性以验证用户身份?
谢谢!
last_sign_in_at
,last_sign_in_ip
等),但依赖于cookie来模拟随时间变化的有状态会话一致性。该cookie具有“TTL”或生存时间,当选中“记住我”时,该cookie将写入浏览器。(至少从我所了解的情况来看,这是与Devise相关的默认/最典型的系统。) - mecampbellsoup