2019-08-15

BCrypt加密原理:

Spring security提供了BCryptPasswordEncoder类,实现spring的PasswordEncoder接口使用BCrypt强哈希方法来加密密码

管理员登陆的业务逻辑:

1 从前台获取登陆的用户名,密码

2 判断用户名是不是null,说明登陆成功,否则登陆用户名或密码错误

用户登陆与密码验证:

1 当添加用户用BCryptPasswordEncoder的encoder对用户密码进行加密

2 根据手机号查询到用户,在获取用户密码,使用BCryptPasswordEncoder的encoder的matches方法判断用户判断用户密码是否正确,当用户名和密码都正确是登陆成功,否则密码或者用户名错误

 常见的认证机制

1 HTTP Basic Auth(容易暴露密码个第三方)

2 Cookie Auth

3 OAuth(适用于个人消费者类的互联网产品)

4 Token Auth

认证流程:

1. 客户端使用用户名跟密码请求登录

2. 服务端收到请求,去验证用户名与密码

3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里

5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

优点:

1. 支持跨域访问

2. 服务器可扩展性

3. 解耦

4. 更适用于移动应用

5. 高性能

6. 基于标准化

JJWT: 一个提供端到端的JWT创建和验证的库

流程:创建了token,web应用中这个操作是由服务端进行然后发送给客户端,客户端下次发送请求携带这个token,那服务端接到到这个token,应该解析出token中的信息,查询这些信息查询数据库返回相应的结果

token的过期时间可以自行设置

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是JWT JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(...
    霹雳火_4617阅读 482评论 0 0
  • 此文章转载于https://blog.csdn.net/wang839305939/article/details...
    MeydanZHOU阅读 5,279评论 0 2
  • 我们总是选择欺骗,然后每次不断地徘徊在信任与欺骗的挣扎之中;这个社会正在不断地丢失掉信任,我们无法相信别人,于是选...
    Joseph_Yue阅读 2,755评论 0 0
  • 今日秋分,黑色大理石的窗台上,阳光明亮而薄凉。吃过早饭后,我发现我的电脑宝贝长出了一个嫩嫩的新芽。 我曾经担心它不...
    小快朵颐阅读 3,180评论 0 0
  • 问题 你想正确处理NULL、NA (Not Available)、NaN(Not a Number)。 方案 你的...
    杏月阿六阅读 5,928评论 0 2