微信网页授权(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 源码简单实现相关推荐

  1. 微信公众号只能设置两个网页授权域名的解决方案

    考虑到有些萌新同学可能不太了解微信开发的流程,所以简单编辑下作为解释,以下代码只作为参考,开发中使用请自己修改好appid.中转站域名.回调地址.state状态码等 中转站 1.首先,用一个域名做中转 ...

  2. php订阅号怎么借服务号权限,微信订阅号已经认证能否有网页授权功能

    微信订阅号已经经过认证了,能否有网页授权获取用户信息的权限,应该怎么做网页授权的功能? 各位高人给个指点 本人微信开发的菜鸟呀,很多都不懂~ 解决方案 10 1.设置域名 2.自定义菜单链接特殊处理( ...

  3. 微信订阅号要租服务器吗,订阅号怎么向认证号借权-微信订阅号已经认证是否有网页授权功能...

    微信订阅号已经认证是否有网页授权功能 1.先到公众平台网站的我的服务页中配置授权回调域名.(请注意,这里填写的域名不要加http://) 2.让用户进入制定URL(https://open.weixi ...

  4. C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权

    通俗来讲VIEW其实就是我们在C#中常用的a标签,可以直接在自定义菜单URL的属性里面写上需要跳转的链接,也即为单纯的跳转. 但更多的情况下,我们是想通过VIEW来进入指定的页面并进行操作. 举一个简 ...

  5. 微信公众号H5开发,实现网页授权(静默登录)

    文章目录 业务场景 具体实现 1. 配置微信后台 2. 上传校验文件 3. 网页静默授权 附:官方文档 业务场景 最近我司有个2C的需求,以分享链接的形式推广某线上活动, 要求一个链接覆盖微信.H5和 ...

  6. 点击微信公众号菜单按钮 跳转网页授权登录

    流程: 用户点击菜单按钮 -–> 发送页面授权请求到微信后台 -–> 得到 code 发送到 我们服务器后台的url -–> 将 code 参数发送到微信后台获取用户的openid返 ...

  7. 微信公众平台--服务号/订阅号--网页授权获取用户基本信息

    参考链接:https://www.cnblogs.com/admol/articles/4286487.html 注: 1.此为网页授权获取用户基本信息,必须为服务号,订阅号是没有权限通过网页授权来获 ...

  8. php实现微信网页授权登录界面,微信公众号 前后端分离实现网页授权登录

    开发语言 后端:thinkphp5+easywechat3+php-jwt 前端:html 实现思路 需要授权登录页面,在页面加载完成时,判断是否登录,如果未登录访问后台授权登录链接 前端代码(主要j ...

  9. 微信公众号前后端分离项目网页授权登录问题

    问题描述 微信公众号网页授权登录,因为是前后端项目,所以跳转是在前端做的,所以回调地址配置的是前端页面地址,例如:xxx/callback?redirect_url=需要登录才能访问的页面地址,问题发 ...

最新文章

  1. [ASP.NET Core] Static File Middleware
  2. boost::hana::fold用法的测试程序
  3. 前端学习(2241):react打卡倒计时十五天之react出现背景
  4. [ARC061E]すぬけ君の地下鉄旅行 / Snuke's Subway Trip
  5. 俄罗斯 90 后天才写 5 年代码创收 1000 亿美金
  6. JavaScript监听手机物理返回键的两种解决方法
  7. 计算机人力资源试题及答案,计算机二级word练习题一题目及答案.
  8. python3 Tkinter GUI 试水
  9. StretchDIBits 的使用
  10. SugarNMS 工业交换机网管软件
  11. 创建mysql表sql语句_mysql创建表的sql语句
  12. 面对众多客户/用户需求,每个都紧急,怎么排期?
  13. 51单片机实训day2——创建Proteus工程以及Proteus基本控件的使用|单片机最小系统电路设计:电源配置 复位电路 晶振电路
  14. The C++ Frontend
  15. ★【树状数组】【NOI2008】糖果雨
  16. python实现视频ai换脸_Python如何实现AI换脸功能 Python实现AI换脸功能代码
  17. Docx 生成word文档
  18. RetinaNet——《Focal Loss for Dense Object Detection》论文翻译
  19. 【LeetCode】回溯 N皇后(DFS、子集、组合问题)
  20. 换主板、换硬件、换平台而不重装系统

热门文章

  1. 企业公司邮箱 | 什么是邮件归档和邮件备份?
  2. 大学生应该脱口而出的 ,背完,你的英语口语绝对不成问题了
  3. 程序员玩跨界,路子有多野?网友:太疯狂!
  4. E3-1230和E3-1230 V2有多神?
  5. VVC参考软件VTM数据结构
  6. 返乡农民工靠千元起步,发展中药产业,注册合作社带领农户致富
  7. 微软SQL服务器被黑客入侵以窃取代理服务的带宽
  8. 新交规压线要罚款还是扣分
  9. MATLAB对plot曲线进行求导
  10. HDU4562-守护雅典娜