微信公众号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中的CMS的涵义
Mar 11 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 PHP
is_file和file_exists效率比较
Mar 14 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
JS中数组重排序方法
2016/11/11 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
softmax及python实现过程解析
2019/09/30 Python
师范应届生教师求职信
2013/11/05 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
学习计划书怎么写
2014/09/15 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
英文导游词
2015/02/13 职场文书
2015年教研组工作总结
2015/05/04 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
Python 图片添加美颜效果
2022/04/28 Python