参考文章:
http://www.ruanyifeng.com/blog/2019/04/oauth_design.html
http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html
http://www.ruanyifeng.com/blog/2019/04/github-oauth.html
OAuth2.0共有四种方式,分别是授权码式、 隐藏式、密码式、凭证式。
使用场景分别是:授权码:适合有后端的。隐藏式:适合无后端的。密码式:直接告诉账号密码。凭证式:适合命令行应用。更多详细的信息请看上面三篇文章,写的非常详细,本文只重点讲解授权码式,因为其是目前使用最多的方式。
授权码式的工作过程如下:
步骤:
- 用户进入前端页面,点击使用第三方登陆(Gitee)方式
- 页面转跳到 Gitee 登陆页面,并让用户登陆,登陆成功后,询问用户是否允许原网页获取 XX 权限
- 同意后 Gitee 会重定向一个 url 网址,这网址里面包含授权码(code)
- 后端解析这个 url ,并拿到这个授权码,然后将这个授权码发送给 Gitee
- Gitee 收到后,会返回一个 json 数据,这个 json 数据就是令牌(token),其中 access_token 就在里面
- 后端解析 token 拿到 access_token 就可以获取用户登陆 Gitee 内的数据了