记录一下discuz3.3+微信OAuth2.0网页授权过程

    xiaoxiao2021-03-25  78

        尝试实现以下流程:点击微信菜单,在微信浏览器中打开网页进行编辑操作,并以微信中的用户信息编辑上传内容。

        参考微信的OAuth2.0网页授权流程:https://mp.weixin.qq.com/wiki。

        首先进行网页授权,进入微信平台,“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。

    第一步:用户同意授权,获取code

        在网站根目录建立oauth2.php文件:

    <?php if (isset($_GET['code'])){ echo $_GET['code']; }else{ echo "NO CODE"; } ?>

        在微信中构造并打开以下连接,appid***替换为自己的appid,url***替换为自己的域名:

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid***&redirect_uri=http://url***/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

        打开以上连接后,得到code:

    第二步:通过code换取网页授权access_token

        第一步成功取得code后,构造以下连接,其中,红色部分需要替换为自己的对应值:

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid***&secret=secret***&code=code***&grant_type=authorization_code

        这连接直接在pc浏览器中打开,得到以下结果:

    {

    "access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7OMDg05IW***",

    "expires_in":7200,

    "refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6xWN7kkRZenaFUqvhmJhxgvd6epTFjhWJflV***",

    "openid":"olXyUwaWwouEo3_UrJpCQ8***",

    "scope":"snsapi_userinfo"

    }

    第三步:刷新access_token(如果需要)

    替换以下连接中的红色部分,在pc浏览器中打开:

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid***&grant_type=refresh_token&refresh_token=refresh_token***

    得到以下内容:

    {

    "openid":"olXyUwaWwouEo3_U***",

    "access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7***",

    "expires_in":7200,

    "refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6x***",

    "scope":"snsapi_base,jsapi_record,jsapi_location,snsapi_userinfo,"

    }

    第四步:拉取用户信息(需scope为 snsapi_userinfo)

    根据上面得到的access_token以及openid,替换以下连接中的红色部分,在pc浏览器中打开:

    https://api.weixin.qq.com/sns/userinfo?access_token=access_token***&openid=openid***

    返回以下结果:

    { "openid":"olXyUwaW***", "nickname":"***", "sex":*, "language":"zh_CN", "city":"", "province":"", "country":"CN", "headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/SXSQqYR286eWx***", "privilege":[] }

    转载请注明原文地址: https://ju.6miu.com/read-32466.html

    最新回复(0)