微信公众号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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
PHP安全编程之加密功能
Oct 09 PHP
超级简单的发送邮件程序
Oct 09 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
php 常用算法和时间复杂度
Jul 01 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
百度地图API使用方法详解
Aug 25 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
thinkPHP框架RBAC实现原理分析
Feb 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
微信小程序实现左右列表联动
2020/05/19 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python 日期操作类代码
2018/05/05 Python
一看就懂得Python的math模块
2018/10/21 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
英国电气世界:Electrical World
2019/09/08 全球购物
中学生个人自我评价
2014/02/06 职场文书
广播体操比赛口号
2014/06/10 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python