文档:
小程序登录中使用OAuth2.0文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
OAuth2.0英文文档:
https://www.rfc-editor.org/rfc/rfc6749
知乎OAuth2.0:
https://zhuanlan.zhihu.com/p/509212673
涉及端:
客户端。
应用端。
授权端。
核心过程:
授权:客户端传入appKey和uid,授权端结合secret生成Code。
申请访问令牌和更新令牌:应用端传入Code、appKey、secret,授权端校验Code解出的secret和appKey对应secret的一致后,appKey、secret结合Code解出的uid生成accessToken、refreshToken。
总结:
用户认可的条件下,授权端信任应用端的机制。
思考1:
为什么不是用户授权后,授权端直接返回token给客户端,然后客户端给游戏端。是为了避免token在客户端泄露风险,以及应用端到客户端和客户端到授权端的传输被截取的风险。
思考2:
为什么不是授权后,授权端通知客户端已授权,同时根据配置的地址直接返回token给应用端。是为了授权端响应低延迟。
可以参考注册中心监听到服务列表变化后是通知客户端改变,而不是直接将新的服务列表给到客户端。
思考3:
为什么有refreshToken,而不是应用端直接通知授权端对accessToken续期,是为了校验应用端的可靠性。
思考3:
为什么不通过accessToken校验应用端的可靠性,是为了尽可能减少accessToken的暴露。即使accessToken泄露了,还有refreshToken,可以避免通过accessToken续期。
其它文档:
网页授权:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
获取AccessToken:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html