什么是OAuth2
OAuth 2.0 是目前流行的一种授权机制,用来授权第三方应用,获取用户数据。
为什么需要用到OAuth2
几乎每个人在使用一个APP或网页应用的时候都看过他们支持第三方登录比如微信登录、 QQ 登录、微博登录、 Google 账号登录、github 授权登录等等。这些都是典型的 OAuth2 使用场景。
假设我们做了一个自己的服务平台,如果不使用 OAuth2 登录方式,那么我们需要用户先完成注册,然后用注册号的账号密码或者用手机验证码登录。相信很多人使用过、甚至开发过公众号网页服务、小程序,当我们进入网页、小程序界面,第一次使用就无需注册,直接使用微信授权登录即可,大大提高了使用效率。因为每个人都有微信号,有了微信就可以马上使用第三方服务。而对于我们的服务来说,也不需要存储用户的密码,只要存储认证平台返回的唯一ID 和用户信息即可。以上是使用了 OAuth2 的授权码模式,利用第三方的权威平台实现用户身份的认证。
除此之外,如果你的公司内部有很多个服务,可以专门提取出一个认证中心,这个认证中心就充当上面所说的权威认证平台的角色,所有的服务都要到这个认证中心做认证。这样一说,其实就是个单点登录的功能。这就是另外一种使用场景,对于多服务的平台,可以使用 OAuth2 实现服务的单点登录,只做一次登录,就可以在多个服务中自由穿行,当然仅限于授权范围内的服务和接口。
在微服务横行的今天,谁敢说自己手上没几个微服务。微服务减