美文网首页
由微信登录看OAuth2.0协议

由微信登录看OAuth2.0协议

作者: 微风细雨007 | 来源:发表于2021-07-15 22:29 被阅读0次

    [微信开放文档](微信开放文档 (qq.com))

    移动应用微信登录是基于OAuth2.0 协议标准构建的微信 OAuth2.0 授权登录系统。

    在进行微信 OAuth2.0 授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的 AppIDAppSecret,申请微信登录且通过审核后,可开始接入流程。

    授权流程说明

    微信 OAuth2.0 授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信 OAuth2.0 的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过 access_token 可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。

    微信 OAuth2.0 授权登录目前支持authorization_code 模式,适用于拥有 server 端的应用授权。该模式整体流程为:

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
    
    2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
    
    3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作
    

    注意:

    1. Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret);
    2. access_token 为用户授权第三方应用发起接口调用的凭证(相当于用户登录态),存储在客户端,可能出现恶意获取access_token 后导致的用户数据泄漏、用户微信相关接口功能被恶意发起等行为;
    3. refresh_token 为用户授权第三方应用的长效凭证,仅用于刷新access_token,但泄漏后相当于access_token 泄漏,风险同上。

    建议将Appsecret、用户数据(如access_token)放在App云端服务器,由云端中转接口调用请求。

    OAuth2.0authorization_code 模式 大致示意图

    大致示意图

    通过access_token可以拿到用户信息

    通过refresh_token可以获取新的access_token

    在安全方面

    OAuth2.0安全设计之Authorization Code - bamb00 - 博客园 (cnblogs.com)

    相关文章

      网友评论

          本文标题:由微信登录看OAuth2.0协议

          本文链接:https://www.haomeiwen.com/subject/anampltx.html