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


Posted in PHP onJanuary 21, 2017

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

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网页授权问题浅析

代码:

$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网页授权问题浅析

代码:

$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中的源代码:

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网页授权问题浅析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
新版PHP极大的增强功能和性能
Oct 09 PHP
PHP 字符串 小常识
Jun 05 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
详解PHP PDO简单教程
May 28 PHP
php中错误处理操作实例分析
Aug 23 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 #PHP
PHP三种方式实现链式操作详解
Jan 21 #PHP
PHP将字符串首字母大小写转换的实例
Jan 21 #PHP
thinkphp 手机号和用户名同时登录
Jan 20 #PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 #PHP
php curl常用的5个经典例子
Jan 20 #PHP
php技巧小结【推荐】
Jan 19 #PHP
You might like
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
pandas数据处理进阶详解
2019/10/11 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
python 贪心算法的实现
2020/09/18 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
大学生怎样进行自我评价
2013/12/07 职场文书
高一物理教学反思
2014/01/24 职场文书
大学旷课检讨书
2014/01/28 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
灰雀教学反思
2014/04/28 职场文书
个人工作表现自我评价
2015/03/06 职场文书
《去年的树》教学反思
2016/02/18 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python