代码之家  ›  专栏  ›  技术社区  ›  Matt

ActiveAdmin bcrypt用户更新或插入rails上的密码

  •  0
  • Matt  · 技术社区  · 7 年前

    我使用ActiveAdmin作为管理面板,所以我可以通过ActiveAdmin创建用户。

    我遇到的问题是,在更新或插入用户密码时,我需要在ActiveAdmin表单中输入的值来散列密码 bcrypt 然后使用rails has_secure_password 身份验证

    我是否可以让ActiveAdmin包含这样的内容? BCrypt::Password.create(params[:password])

    在保存到数据库之前?

    这是我的 users.rb

    ActiveAdmin.register User do
    permit_params :email, :password_digest, :session_token, :session_key, 
    :rank, :profileColour
    
    index do
    selectable_column
    id_column
    column :email
    column :password_digest
    column :session_token
    column :session_key
    column :rank
    column :profileColour
    actions
     end
    
    filter :email
    filter :session_token
    filter :session_key
    filter :rank
    filter :profileColour
    
    form do |f|
      f.inputs "Admin Details" do
      f.input :email
      f.input :password_digest
      f.input :rank
      end
      f.actions
    end
    

    终止

    如有任何建议,将不胜感激 谢谢

    1 回复  |  直到 7 年前
        1
  •  3
  •   fongfan999    7 年前

    尝试使用 :password 而不是 :password_digest

    form do |f|
      f.inputs "Admin Details" do
      f.input :email
      f.input :password
      # f.input :password_confirmation
      f.input :rank
      end
      f.actions
    end
    

    别忘了 permit params

    ActiveAdmin.register User do
      permit_params :email, :password, :rank
    end