微信授权2.0php源码,微信网页授权(OAuth2.0) PHP 源码简单实现
微信网页授权(OAuth2.0) PHP 源码简单实现
来源:中文源码网 浏览: 次 日期:2018年9月2日
【下载文档: 微信网页授权(OAuth2.0) PHP 源码简单实现.txt 】
(友情提示:右键点上行txt文档名->目标另存为)
微信网页授权(OAuth2.0) PHP 源码简单实现 提要:
1. 建议对OAuth2.0协议做一个学习。
2. 微信官方文档和微信官网工具要得到充分利用。
比较简单,直接帖源代码了。其中“xxxxxxxxxx”部分,是需要依据自己环境做替换的/**
* OAuth2.0微信授权登录实现
*
* @author zzy
* @文件名:GetWxUserInfo.php
*/ // 回调地址
$url = urlencode("http://www.xxxxxxxxx.com/GetWxUserInfo.php");
// 公众号的id和secret
$appid = 'xxxxxxxxx';
$appsecret = 'xxxxxxxxx';
session_start();
// 获取code码,用于和微信服务器申请token。 注:依据OAuth2.0要求,此处授权登录需要用户端操作
if(!isset($_GET['code']) && !isset($_SESSION['code'])){
echo
'授权';
exit;
}
// 依据code码去获取openid和access_token,自己的后台服务器直接向微信服务器申请即可
if (isset($_GET['code']) && !isset($_SESSION['token'])){
$_SESSION['code'] = $_GET['code'];
$url="http://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid.
"&secret=".$appsecret."&code=".$_GET['code']."&grant_type=authorization_code";
$res = https_request($url);
$res=(json_decode($res, true));
$_SESSION['token'] = $res;
}
print_r($_SESSION);
// 依据申请到的access_token和openid,申请Userinfo信息。
if (isset($_SESSION['token']['access_token'])){
$url = "http://api.weixin.qq.com/sns/userinfo?access_token=".$_SESSION['token']['access_token']."&openid=".$_SESSION['token']['openid']."&lang=zh_CN";
echo $url;
$res = https_request($url);
$res = json_decode($res, true);
$_SESSION['userinfo'] = $res; }
print_r($_SESSION); // cURL函数简单封装
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;
}
得到正确结果如下:Array
(
[code] => 041GZI4l0tvGHg10N75l05FQ4l0GZI42
[token] => Array
(
[access_token] => TWo6w5QMpzTZibu3FPh2k4EdC5bllp4sGeQkC4NbZtj-zti-ctZj1SrrNL1qGCf2lB1-6o3N7kh2bcxl5bxtQqJEGk1cq12l8CzF40R9XvA
[expires_in] => 7200
[refresh_token] => Iz3olCrkqPBOJvSSH2bOKvA09Sjvsp1c8Ltm7MvxxPfQXSbvI_WoVmzhjqASzwlMa7TAGgsg3mIJmaHjL7jrJHDqUF1jKbhd6GNDnLtXq0U
[openid] => ota_XwQ4r_5nioVmshQ
[scope] => snsapi_userinfo
) [userinfo] => Array
(
[openid] => ota_XwQ4r_5nioVmshQq
[nickname] => 野狐
[sex] => 1
[language] => zh_CN
[city] => 杭州
[province] => 浙江
[country] => 中国
[headimgurl] => http://wx.qlogo.cn/mmopen/PiajxSqBRaELwee7rhrt2ibnkC1MEnu04WiaWrw9FkuPBbGOgnrMbynNoEuxicgXOetW5VqQbTrS4fZDXNvAWsz6GQ/0
[privilege] => Array
(
) ))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。
亲,试试微信扫码分享本页! *^_^*
微信授权2.0php源码,微信网页授权(OAuth2.0) PHP 源码简单实现相关推荐
- 微信公众号只能设置两个网页授权域名的解决方案
考虑到有些萌新同学可能不太了解微信开发的流程,所以简单编辑下作为解释,以下代码只作为参考,开发中使用请自己修改好appid.中转站域名.回调地址.state状态码等 中转站 1.首先,用一个域名做中转 ...
- php订阅号怎么借服务号权限,微信订阅号已经认证能否有网页授权功能
微信订阅号已经经过认证了,能否有网页授权获取用户信息的权限,应该怎么做网页授权的功能? 各位高人给个指点 本人微信开发的菜鸟呀,很多都不懂~ 解决方案 10 1.设置域名 2.自定义菜单链接特殊处理( ...
- 微信订阅号要租服务器吗,订阅号怎么向认证号借权-微信订阅号已经认证是否有网页授权功能...
微信订阅号已经认证是否有网页授权功能 1.先到公众平台网站的我的服务页中配置授权回调域名.(请注意,这里填写的域名不要加http://) 2.让用户进入制定URL(https://open.weixi ...
- C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权
通俗来讲VIEW其实就是我们在C#中常用的a标签,可以直接在自定义菜单URL的属性里面写上需要跳转的链接,也即为单纯的跳转. 但更多的情况下,我们是想通过VIEW来进入指定的页面并进行操作. 举一个简 ...
- 微信公众号H5开发,实现网页授权(静默登录)
文章目录 业务场景 具体实现 1. 配置微信后台 2. 上传校验文件 3. 网页静默授权 附:官方文档 业务场景 最近我司有个2C的需求,以分享链接的形式推广某线上活动, 要求一个链接覆盖微信.H5和 ...
- 点击微信公众号菜单按钮 跳转网页授权登录
流程: 用户点击菜单按钮 -–> 发送页面授权请求到微信后台 -–> 得到 code 发送到 我们服务器后台的url -–> 将 code 参数发送到微信后台获取用户的openid返 ...
- 微信公众平台--服务号/订阅号--网页授权获取用户基本信息
参考链接:https://www.cnblogs.com/admol/articles/4286487.html 注: 1.此为网页授权获取用户基本信息,必须为服务号,订阅号是没有权限通过网页授权来获 ...
- php实现微信网页授权登录界面,微信公众号 前后端分离实现网页授权登录
开发语言 后端:thinkphp5+easywechat3+php-jwt 前端:html 实现思路 需要授权登录页面,在页面加载完成时,判断是否登录,如果未登录访问后台授权登录链接 前端代码(主要j ...
- 微信公众号前后端分离项目网页授权登录问题
问题描述 微信公众号网页授权登录,因为是前后端项目,所以跳转是在前端做的,所以回调地址配置的是前端页面地址,例如:xxx/callback?redirect_url=需要登录才能访问的页面地址,问题发 ...
最新文章
- [ASP.NET Core] Static File Middleware
- boost::hana::fold用法的测试程序
- 前端学习(2241):react打卡倒计时十五天之react出现背景
- [ARC061E]すぬけ君の地下鉄旅行 / Snuke's Subway Trip
- 俄罗斯 90 后天才写 5 年代码创收 1000 亿美金
- JavaScript监听手机物理返回键的两种解决方法
- 计算机人力资源试题及答案,计算机二级word练习题一题目及答案.
- python3 Tkinter GUI 试水
- StretchDIBits 的使用
- SugarNMS 工业交换机网管软件
- 创建mysql表sql语句_mysql创建表的sql语句
- 面对众多客户/用户需求,每个都紧急,怎么排期?
- 51单片机实训day2——创建Proteus工程以及Proteus基本控件的使用|单片机最小系统电路设计:电源配置 复位电路 晶振电路
- The C++ Frontend
- ★【树状数组】【NOI2008】糖果雨
- python实现视频ai换脸_Python如何实现AI换脸功能 Python实现AI换脸功能代码
- Docx 生成word文档
- RetinaNet——《Focal Loss for Dense Object Detection》论文翻译
- 【LeetCode】回溯 N皇后(DFS、子集、组合问题)
- 换主板、换硬件、换平台而不重装系统