浅析第三方登录,OAuth2.0

浅析第三方登录,OAuth2.0

简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。

浅析第三方登录,OAuth2.0_第1张图片
OAuth 2.0 规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式
1,授权码
2,隐藏式
3,密码式
4,客户端凭证

一,授权码(适用于前端的URL做跳转,由后端来做令牌交互;常用)
浅析第三方登录,OAuth2.0_第2张图片
二,隐藏式(纯前端交互)
浅析第三方登录,OAuth2.0_第3张图片
tip: 由于是纯前端交互,所以令牌是由url带着,因此存在泄漏风险。所以不常用,如果需要用的话,要保证时效器够短,通常页面关掉就失效;

三,密码式(保证对访问对应用高度信任,因为获取的是账号与密码)
浅析第三方登录,OAuth2.0_第4张图片
tip:获取的令牌通过http传输,风险较大,保证对应用的足够信任

四, 凭证式(没有前端交互,由命令行完成)
浅析第三方登录,OAuth2.0_第5张图片
tip:不需要用户参与,因此可能存在多个用户公用一个令牌

======
令牌的使用:
目标应用获取令牌后,就可以访问第三方应用的api了。api的请求头上加上Authorization字段,令牌存在里面;

令牌的更新:
第三方网站颁发令牌的时候,一次性颁发两个令牌,一个用于获取数据,另一个用于获取新的令牌(refresh token 字段)。令牌到期前,用户使用 refresh token 发一个请求,去更新令牌。

本文内容参考自:http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html
阮大大出品;
本人在理解过程中可能存在偏差,看到有问题的小伙伴请留言指正哦~

你可能感兴趣的:(业务原理,前端)