Rails-icode9密码保护的基础知识


什么叫身份认证?

实质上,身份认证是一种认证您是谁方式。我也经常搞混身份认证和受权:

身份认证是对消费者真实身份确认,而受权明确你们是否能够浏览特殊网络资源[1]。

期待二者的高效界定将帮助你不必像我一样搞混他们!让你的身份认证正常运转针对往后的受权至关重要,他们相互依存。

皱壁的基本知识

有关bycrpt怎样工作的重中之重定义就是它应用哈希和盐优化算法来加密密码以的保护。散列算法将纯文本登陆密码转换成一堆字母和数字。这么做的一个关键方面也是,它在通过哈希处理后没法变成纯文本。腌渍是哈希之上的附加层,可以为每一个登陆密码建立更与众不同的字母和数字错乱。散列和放盐每一个登陆密码的搭配可保证每一个加密密码都十分安全性。

三个关键流程

1)第一步是把bcrypt宝石导入到你的晶石文档中。

geminstallbcrypt

2)在你的用户表中,做为登陆密码列的关键词是“password_digest”。⭐留意:仅在这里应用“password_digest”,并在别的哪里都(包含您的前面!

//schema.rb

create_table"users",force::cascadedo|t|

t.string"first_name"

t.string"last_name"

t.string"username"

t.string"password_digest"

t.datetime"created_at",precision:6,null:false

t.datetime"updated_at",precision:6,null:false

end

3)在你的实体模型中,在大家的实例中,我们自己的用户模型包含宏“has_secure_password”。

classUserhas_secure_password

//therestofyourmodel

end

登录中的应用实例

进行那些流程后,大家可以为应用软件里的登录功能撰写如下所示具体内容:

classSessionsControllerskip_before_action:authorize,only::create

//forloginfeat

defcreate

user=User.find_by(username:params[:username])

ifuser&.authenticate(params[:password])

session[:user_id]=user.id

renderjson:user

else

renderjson:{errors:["Invalidusernameorpassword"]},status::unauthorized

end

end

end

结果

这也是维护你的登陆密码的三个步骤。希望这有利于清除你对加密密码的所有疑惑!假如你错过了,欢迎来到bcrypt的连接!

本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;

2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;

3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;

4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;

5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/293314.html

(0)
上一篇 2022年11月19日
下一篇 2022年11月20日

相关推荐

发表回复

登录后才能评论