认证机制的对比

一、认证机制的对比

1. HTTP Basic Auth

HTTP Basic Auth 是一种最经典的传统登陆方式,就是每次请求API时都 带上用户的username和 password去认证,但是但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被 使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth ,如图:

image-20210509193414967

优点: 简单便捷; 缺点: 不安全容易泄露

2. Cookie Auth

使用Cookie 来进行登陆,这是一种有状态登陆方式,客户端登陆之后,服务器端需要存储对应的Session信息,而客户端会拥有一个Cookie信息。下次登陆时,就是带上Cookie信息与session对象匹配来实现状态管理的。Cookie可以设置过期时间。

image-20210509195454583

优点:相比与传统的登陆方式,更加安全

缺点:在服务器端的Session是状态的,当用户越来越多时,服务端的开销就会越来越大;多个资源请求时存在跨域问题。

3.Token Auth

使用token进行认证登陆,上面讲的Cookie Auth 认证,是有状态的,而token登陆是无状态的,服务端不用存储用户的登陆信息。他是一种令牌登陆方式,当用户第一次登陆后,服务端就会给用户派发一个令牌(token),当用户下次就可以带上这个令牌访问服务端了,

image-20210509200128053

现在流行的 JWT就是一种无状态的token登陆方式

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用 户和服务器之间传递安全可靠的信息。

一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。

  • 头部(Header)JWT的最基本的信息,例如其类型以及签名所用的算法等
  • 载荷(playload) 包含标准中注册的声明、公共的声明 、私有的声明
  • 签证(signature) 是 为加密(base64(Header)+ base64(playload) + 盐)
4. OAuth

OAuth2是一种授权方法,用于通过HTTP协议提供对受保护资源的访问。首先,OAuth2使第三方应用程序能够获得对HTTP服务的有限访问权限,然后通过资源所有者和HTTP服务之间的批准交互来让第三方应用程序代表资源所有者获取访问权限。OAuth 主要用来授权给第三方应用。

image-20210509202340941

JWT与OAuth的区别 -OAuth2是一种授权框架 ,JWT是一种认证协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值