博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rails--bcrypt对密码加密
阅读量:5105 次
发布时间:2019-06-13

本文共 812 字,大约阅读时间需要 2 分钟。

一、引入gem包

gem 'bcrypt',  '3.1.11' #不一定要指定版本号,最好指定合适的 然后执行bundle install

二、用户需要有password_digest属性

rails generate migration add_password_digest_to_users password_digest:string

三、用户需要添加has_secure_password方法

该方法会给user添加两个虚拟属性password和password_confirmation,且创建user的时候会执行存在性验证和匹配验证

并且获得authenticate方法(根据密码验证),如果密码正确,返回对应的用户对象,否则返回false

class User < ApplicationRecord    ...    ...    has_secure_passwordend

四、给密码添加合适的长度验证

has_secure_password    validates :password, presence: true, length: { minimum: 6 }

五、创建并验证用户

User.create(email: "abc@a.com", password: "abcdef", password_confirmation: "abcdef") #如果这两个属性不一致将不能创建,此处假设user有email属性#验证user = User.find_by(email: "abc@a.com")user.authenticate("not the right password") # => falseuser.authenticate("abcdef") # => true

 

转载于:https://www.cnblogs.com/ltns-hhyb/p/9085365.html

你可能感兴趣的文章
Access denied for user ''@'localhost' to database 'mysql'
查看>>
微信公众号里面使用地图导航
查看>>
部署支持 https 的 Nginx 服务
查看>>
‘Cordova/CDVPlugin.h’ file not found
查看>>
WebAssembly是什么?
查看>>
C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件)...
查看>>
20151214--JSTL
查看>>
树状数组_一维
查看>>
【拓扑排序】【最短路】【最小生成树】Day 9.2
查看>>
substring使用
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
java.sql.Timestamp cannot be cast to java.sql.Date
查看>>
JS代码大全-2
查看>>
linux install ftp server
查看>>
C# 使用 Abot 实现 爬虫 抓取网页信息 源码下载
查看>>
嵌入式软件设计第8次实验报告
查看>>
NP难问题求解综述
查看>>
算法和数据结构(三)
查看>>
看一下你在中国属于哪个阶层?
查看>>
在iOS 8中使用UIAlertController
查看>>