Rails 4,Devise 记住令牌

8

我正在尝试找出devise如何生成 remember_token

即使没有用于保存它的令牌列,我已经注意到它会被生成(并存储在cookie中)。我想了解它是如何工作的,但我无法在源代码中找到正确的位置。

请问有谁能够指引我到源文件吗?

1个回答

14

该值来自于rememberable模型中的rememberable_value方法。

https://github.com/plataformatec/devise/blob/master/lib/devise/models/rememberable.rb#L75

在那里,您可以看到如果模型响应它(这是以前版本中实际存在的数据库属性的剩余部分),则 remember_token 属性/方法,否则它会从authenticatable_salt方法中获取值。

如果您使用database_authenticatable模块,则使用的authenticatable_salt方法在此处:

https://github.com/plataformatec/devise/blob/master/lib/devise/models/database_authenticatable.rb#L132

然后该方法返回用户加密密码的前29个字符,然后用作remember_token。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接