【发布时间】:2014-01-21 12:13:48
【问题描述】:
我试图找出devise 是如何生成remember_token 的。
我注意到即使数据库中没有标记列来保存它,它也会生成(并存储在 cookie 中)。我想了解它是如何工作的,但我在它的源代码中找不到正确的位置。
谁能指点我的源代码文件?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 devise
我试图找出devise 是如何生成remember_token 的。
我注意到即使数据库中没有标记列来保存它,它也会生成(并存储在 cookie 中)。我想了解它是如何工作的,但我在它的源代码中找不到正确的位置。
谁能指点我的源代码文件?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 devise
值来自可记忆模型中的rememberable_value方法。
https://github.com/plataformatec/devise/blob/master/lib/devise/models/rememberable.rb#L75
如果模型响应它(这是以前版本中存在实际 DB 属性的遗留问题)或未能提取值,您可以在那里看到 remember_token 属性/方法来自authenticate_salt 方法。
使用的authenticable_salt方法,如果你使用database_authenticable模块在这里:
然后该方法返回用户加密密码的前 29 个字符,然后在 remember_token 中使用。
【讨论】: