前言
做过一个与腾讯微校合作的项目,需要在前端获取token(后端处理)才能拿到微校用户数据,后来发现OAuth机制是很重要的知识,所以借此总结学习笔记
参考:阮一峰的网络日志
一、授权码式
1.指第三方应用先申请一个授权码,然后再用该码获取令牌
2.授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏(最常用的流程,安全性最高,适用于有前后端分离的Web 应用)
3.跳转流程图:
4.步骤解释:
-第一步:A 网站提供一个链接,用户点击后就会跳转到 B 网站,授权用户数据给 A 网站使用。
eg:https://b.com/oauth/authorize?
response_type=code& //要求返回授权码
client_id=CLIENT_ID& //让 B 知道是谁在请求
redirect_uri=CALLBACK_URL& //B 接受或拒绝请求后的跳转网址
scope=read //要求的授权范围(示例为只读)
-第二步:用户跳转后,B 网站会要求用户登录,然后询问是否同意给予 A 网站授权用户表示同意,这时 B 网站就会跳回redirect_uri参数指定的网址,跳转时,会在链接上拼接一个授权码。
eg:https://a.com/callback?code=AUTHORIZATION_CODE
-第三步