用设计定制盐

Custom salt with devise

我有自己的 enctypter,使用 devise 的 encyptable module.However 我不能设置自己的 salt。有没有办法强制使用自己的盐?

我试过使用

制作盐
def password_salt
'test'
end

但这没有用

从 2.1 版开始,如果您想使用自定义加密器,则需要使用另一个 gem:Devise Encryptable。摘自您需要的文档:

将其添加到您的 Gemfile:

gem "devise-encryptable"

将其添加到您的模型中:

class User < ActiveRecord::Base
  devise :database_authenticatable, :encryptable
end

在用户模型上添加迁移:

class DeviseCreateUsers < ActiveRecord::Migration
  def change
    add_column :users, :password_salt, :string
  end
end

修改密码只需要更改数据库中的值或使用方法User.password_salt(new_salt)。请记住,您可能需要更新密码才能使用新盐。