微信公众号OAuth2.0网页授权问题浅析

2025-05-29 0 44

根据需求,我今天完成的是微信的网页授权然后拉取用户的一些基本信息的问题。

1.修改网页授权的基本信息。打开微信公众平台。

微信公众号OAuth2.0网页授权问题浅析

微信公众号OAuth2.0网页授权问题浅析

在这个地方写要授权的页面的网址。

2.我这边只是测试这个功能,所以我页面直接写了个测试页面,我在要测试的这个网站的根目录新建了一个ceshi.html

然后在他的控制器里面对其进行操作。

1)首先是分享的也就是授权的网页的链接要写的正确

微信公众号OAuth2.0网页授权问题浅析

然后url:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx444444444444&redirect_uri=http://www.erdangjiade.com/admin/wx/ceshi.html&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

2)使用code获取access_token

我是直接在测试的那个网页(也就是进行授权)的控制器直接对其操作

微信公众号OAuth2.0网页授权问题浅析

代码:

?

1

2

3

4

5

6

7
$code=$_get['code'];

dump($code);

$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxd1caae7&secret=0a72c866233ab4cf6f1ad6d&code=".$code."&grant_type=authorization_code";

//var_dump($url);

$resinfo = https_request($url,true);

$userlists=json_decode($resinfo,true);

dump($userlists);

这边可以答应出我这边写的$userlists

然后如果是正确的话,就能获取access_token,因为access_token的时效性的问题,所以可以把access_token替换成refresh_token,我因为自己觉得并不需要,所以就没有写那一步。

微信公众号OAuth2.0网页授权问题浅析

这边要是换取的时候有错的话,就会显示{"errcode":40029,"errmsg":"invalid code"}

3)利用openid和access_token获取用户的头像昵称等基本信息。

微信公众号OAuth2.0网页授权问题浅析

代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
$access_token=$userlists['access_token'];

$openid=$userlists['openid'];

$userclick=m('maiclub_userclick');

if($userclick->where("openid = '{$openid}'")->find()){

//echo 1111;

}else{

$urlinfo="https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid;

$resltinfo=https_request($urlinfo,true);

$userinfo=json_decode($resltinfo,true);

$userclick->add($userinfo);

}

dump($userinfo);

// dump($access_token);

$this->display();

dump($userinfo);就可以打印出用户的基本信息,然后只要入库就可以了。

这边还有个问题,就是我这边用到的一个函数https_request

他在function中的源代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
function https_request($url, $data = null){

$curl = curl_init();

curl_setopt($curl, curlopt_url, $url);

curl_setopt($curl, curlopt_ssl_verifypeer, false);

curl_setopt($curl, curlopt_ssl_verifyhost, false);

if (!empty($data)){

curl_setopt($curl, curlopt_post, 1);

curl_setopt($curl, curlopt_postfields, $data);

}

curl_setopt($curl, curlopt_returntransfer, 1);

$output = curl_exec($curl);

curl_close($curl);

return $output;

}

这样应该没有问题了,就是授权的全部内容。

以上所述是小编给大家介绍的微信公众号oauth2.0网页授权问题浅析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 微信公众号OAuth2.0网页授权问题浅析 https://www.kuaiidc.com/95384.html

相关文章

发表评论
暂无评论