0%

OAuth2.0授权

OAuth2.0是什么

  • 支持第三方登陆的功能
  • 当然,有了第三方登陆,那么也就有了第三方的接口权限,毕竟有了access_token,相当于第三方开放了一些用户的接口,你可以使用用户的授权(access_token),去请求这些接口,这些接口会返回授权用户的一些信息。例如,在电商项目中,获取到一个店铺的授权后,就可以通过淘宝的开放平台拿取到授权店铺的在售商品等。

OAuth2.0的客户端需要做什么

  1. 在授权服务器中申请一个应用,这将获得 client_id, client_secret。
  2. 在授权服务器中填写回调的redirec_uri。
  3. 按照授权服务器的url拼接方式,拼接授权ur(这应该会包含client_id)。用户打开此url,将跳转到授权服务器的根域名下的一个页面,用户在此页面执行授权操作(点击按钮,或者扫描二维码)。
  4. 当授权服务器验证两个URL一致时,会通知浏览器跳转到redirect_uri,同时,在redirect_uri后附加用户凭证(code)的相关信息。
  5. 客户端接受回调的redirect_uri,这里面有code信息(也有用户在授权服务器的用户信息,如用户名等),客户端拿着code,并带上申请到的client_id, client_secret, 去请求授权服务器,授权服务器验证code和client_id,保证请求access_token的应用就是用户授权的应用,并返回access_token。
  6. 客户端可能需要定时刷新token,这是因为access_token一般都有过期时间,在access_token过期前,客户端主动刷新token,可以免去access_token过期后用户又要授权的问题。

参考

https://zhuanlan.zhihu.com/p/20913727