Open
Description
小程序的整个登录流程设计,核心思想就是 OAuth2.0 规范,用正确的角色做正确的事。
几个术语
- Resource Owner:资源所有者,小程序内代表用户
- Resource Server:资源服务器,小程序内代表微信
- Third-party application(第三方应用程序/又称客户端):也就是小程序
- User Agent(用户代理):还是小程序,因为小程序类似浏览器,它承担了与资源服务器沟通的工作
- Authorization server(认证服务器):微信服务器
- HTTP Service(HTTP 服务提供商):微信服务器
可以这么描述:在整个小程序生态内,你(用户)是你的数据的所有者,微信服务器只是帮你保存了你的数据,而当你访问一个小程序时,小程序此时就是用户代理,小程序想要获取你的数据,例如头像昵称手机号等信息,需要先征得你的许可。当你授权小程序获取头像昵称时,客户端也就是小程序就可以携带 token 去向微信服务器要这个数据,微信服务器确认是你授权后,就可以把你的相关信息返回给小程序使用。
可以类比下面这个场景:有一天你外出不在家,你的朋友想访问你家拿个东西,但是你不在家也不能给钥匙,假如你家里安装了门禁系统,那么你可以临时生成一个访问码,你的朋友凭借这个访问码获得了门禁系统认可,于是顺利进入你家。在这个场景里,门禁系统就类似小程序,临时访问码就是 token,而你是你这个家的所有者。