我想了解devise如何生成remember_token
。
我注意到它是生成的(并存储在cookie中),即使DB中没有令牌列来保存它。我想了解它的工作原理,但我找不到合适的位置。
有人能指出我的源代码文件吗?
答案 0 :(得分:9)
该值来自可记忆模型中的rememberable_value方法。
https://github.com/plataformatec/devise/blob/master/lib/devise/models/rememberable.rb#L75
如果模型对它做出响应,你可以看到 remember_token 属性/方法(这是以前版本中存在实际数据库属性的遗留问题),或者它没有提取值来自authenticatable_salt方法。
如果您使用的是database_authenticatable模块,则使用的authenticatable_salt方法位于:
该方法然后返回用户加密密码的前29个字符,然后在remember_token中使用。