ruby on rails 用户密码加密

运行环境: rails 4.2.1 
                   ruby 2.0.0p481
                   mysql(支持多种数据库)

在实际的项目中,需要注意对用户隐私的保护,这往往需要对用户的密码进行加密,下面是对其中一种密码加密库使用的介绍

  1. 在Gemfile中引入gem包'bcrypt-ruby '指定版本号,我使用的版本是3.1.5

gem 'bcrypt-ruby', '~> 3.1.5'

  2.运行bundle install ,安装gem

  3.modle 里原来的password(如果是已经建立了该字段)需要把对应的字段改为password_digest 

def change
    rename_column :users, :password, :password_digest
end

  4.在modle里的user.rb里加入has_secure_password

class User < ActiveRecord::Base
  validates :name, :presence => {:message => '用户不能为空'},:uniqueness =>{:message => '用户名已存在!'}
  validates :phone, :presence => {:message =>'电话不能为空'}
  has_secure_password

end

  5.在controller里的创建新的modle 是注意传入两个字段password,password_confirmation,在创建modle时会自动将加密后的密码保存到password_digest字段上

@user = User.new(user_message)

def user_message
    params.permit(:name, :password, :password_confirmation, :phone)
end

 

  6.保存成功后,登录验证时authenticate 方法验证密码是否正确返回boolean值

if @user.authenticate(params[:password])
   return render :json => check_user_type(@user)
end

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值