微信OAuth2.0网页授权接口

微信OAuth2.0网页授权接口的thinkphp实现版本号。主要实现了oauth网页受权,以及部分其它接口。

用法

为什么用OAuth2.0受权?

通过OAuth2.0受权的网页将会获取到打开者的微信信息。甚至包含微信昵称、头像等实用的数据,开发人员们能够凭此设计出很多其它更丰富的页面应用,比方近期一直非常火爆的红包类活动。除此之外还有个额外的优点,就是能够控制页面在非微信浏览器中无法打开,能够降低代码被人窥窃的风险。

那么红包类活动是怎样使用OAuth2.0受权接口的呢?

1.首先用户打开页面连接(php页面),php接收到请求后将页面跳转到微信的OAuth2.0受权页面,在获取到受权后再次将页面跳转回phpserver;此次跳转中带实用户的各种信息,phpserver记录后返回用户所示页面。

2.然后用户转发此页面,在转发的连接中带有自己的标识參数。当好友点击分享后的连接的时候也会反复第1步的步骤。当phpserver发现从微信OAuth2.0受权返回的数据中的用户数据与标识參数相应的分享者的用户数据不一致的时候,则能够推断出有好友打开了分享页面,给用户添加一个红包。

用法

AuthAction.class.php ---- 认证基类

IndexAction.class.php --- 測试类

index/Conf/config.php --- 设置

wx_appID 微信公众账号的appid

wx_appsecret 微信公众账号的appsecret

weixin_token 微信公众账号接口配置信息的Token

wx_webauth_callback_url OAuth2.0授权后跳转到的默认页面

wx_webauth_expire OAuth2.0授权Token过期时间默认6500

配置好config.php后在微信公号后台设置index.php/Index/wechatInitAuth进行微信API认证,提示"配置成功"后方可使用。

測试公众号申请与详细的測试步骤见下方。

測试

IndexAction.class.php --- 測试类

申请微信測试公众帐号

微信提供測试用的公众账号。此帐号仅仅能加入100个关注者且仅仅有已关注的用户才干够进行OAuth2.0受权。

点此开通測试帐号

1.开通后将appIDappsecretToken填入index/Conf/config.php中。

然后将接口配置信息中的URL改至phpserver,将地址定位到index.php/Index/wechatInitAuth进行微信API认证,直到提示"配置成功"。



2.点击‘体验接口权限表--OAuth2.0网页授权(仅关注者才干授权)’中的改动。将授权回调页面域名改为phpserver地址。直到出现‘通过安全监測’。



配置完微信測试号后,在微信中打开http://项目文件夹/index.php(例:http://121.40.135.90/weixin_auth/index.php)将会在页面中打印出session中的受权数据。表示測试受权成功。

代码结构

在AuthAction中的初始化函数_initialize中进行了OAuth2.0受权,全部基于AuthAction的控制器都将进行受权过程(除了微信API认证过程wechatInitAuth)。

对于同一用户在受权过期时间内多次打开此控制器的页面。将不会进行多次受权,由于其受权信息记录在session中,以免反复受权,减慢訪问速度。受权过期时间在index/Conf/config.phpwx_webauth_expire设置,建议不要大于微信的过期时间7200秒。

注意:

  • 微信OAuth2.0受权分为snsapi_base (不弹出授权页面。直接跳转,仅仅能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,仅仅要用户授权,也能获取其信息),AuthAction.class.php默觉得snsapi_base,并且session中仅仅记录了snsapi_base中的基础数据,如须要snsapi_userinfo请自行改动。

  • 详细的实现方法见代码凝视。

github地址

很多其它教程请訪问:ued.sexy

微博@UED天机

微信OAuth2.0网页授权接口的更多相关文章

  1. 转载:解决微信OAuth2.0网页授权回调域名只能设置一个的问题

    项目地址:https://github.com/HADB/GetWeixinCode 说明:微信项目很多,但是回调域名有限,经常使用,做个笔记. 解决微信OAuth2.0网页授权只能设置一个回调域名的 ...

  2. 解决微信OAuth2.0网页授权回调域名只能设置一个的问题

    https://github.com/HADB/GetWeixinCode GetWeixinCode 解决微信OAuth2.0网页授权回调域名只能设置一个的问题 使用方法 部署get-weixin- ...

  3. 微信OAuth2.0网页授权设置一个域名需多个域名使用的问题

    最近遇到一个问题,一个微信公众号,需要在多个域名上使用OAuth2.0网页授权,但微信OAuth2.0网页授权回调域名只能设置一个. 解决办法: 通过多一次的跳转,解决了微信限制回调域名只能设置一个的 ...

  4. 微信OAuth2.0网页授权

    1.OAuth2.0网页授权 关于网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页 ...

  5. 微信OAuth2.0网页授权php示例

    1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的第三方网页,fn_system.php <?php if(empty($_SESSION['user'])){ header ...

  6. 微信公众平台开发(71)OAuth2.0网页授权

    微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使 ...

  7. 微信公众平台开发-OAuth2.0网页授权(含源码)

    微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...

  8. 微信公众平台开发(71)OAuth2.0网页授权-摘抄

      微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友 ...

  9. 微信OAuth2.0网页受权php

    www.MyException.Cn 网友分享于:2014-01-19 浏览:2504次 微信OAuth2.0网页授权php示例 1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的 ...

随机推荐

  1. react native中的聊天气泡以及timer封装成的发送验证码倒计时

    今天看来情书写的文章,研究了一下大佬写的文章,自己做一点总结. 其实,今天我想把我近期遇到的坑都总结一下:1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以 ...

  2. Python Socket 通信

    参考: http://www.cnblogs.com/alex3714/articles/5830365.html Socket A network socket is an endpoint of ...

  3. python模拟自动登录网站(urllib2)

    不登录打开网页: import urllib2 request = urllib2.Request('http://www.baidu.com') response = urllib2.urlopen ...

  4. 记录一次向TiDB数据库导入数据的例子

    导出数据 今天从Mysql的某个库中导出一个表大概有20分钟吧,等了一会终于导出成功了.查看一下文件的大小: [tidb@:vg_adn_CkhsTest ~]$du -h ./creative_ou ...

  5. Hadoop HBase概念学习系列之HMaster服务器(四)

    每台HRegion服务器都会和HMaster服务器通信,HMaster的主要任务就是告诉每个HRegion服务器它要维护哪些HRegion. 当一台新的HRegion服务器登录到HMaster服务器时 ...

  6. route命令详解与使用实例 ,同时访问内外网

    route命令详解与使用实例     2011-10-18 12:19:41|  分类: 其他 |  标签:route   |字号 订阅   1.   使用背景 需要接入两个网络,一个是部署环境所在内 ...

  7. 以太坊预言机与WEB API(原创,转载请说明原址)

    什么是预言机? 从链外获得数据,提供区块链与现实世界事件之间的连接,提供外部信息的平台 预言机自身也是一种智能合约,它允许区块链连接到任何现有的API 是这个预言机去调用各种 WEB API的接口 这 ...

  8. p,np,npc,np难问题,确定图灵机与非确定图灵机

    本文转自豆瓣_燃烧的影子 图灵机与可计算性 图灵(1912~1954)出生于英国伦敦,19岁进入剑桥皇家学院研究量子力学和数理逻辑.1935年,图灵写出了"论高斯误差函数"的论文, ...

  9. jQuery----各版本

    jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作.由John Resig在2006年1月的BarCamp NYC上发布第一个版本.目前是由 Dave M ...

  10. 用python实现MRO算法

    引子: 如图反映了python3中,几个类的继承关系和查找顺序.对于类A,其查找顺序为:A,B,E,C,F,D,G,(Object),这并不是一个简单的深度优先或广度优先的规律.那么这个顺序到底是如何 ...