微信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. kafka-hadoop-consumer

    写了一个工具,从kafka传输数据到hdfs,采用的api,可以消费指定的kafka topic 或者为了简便可以消费所有的topic中各个partition的数据. 地址:https://githu ...

  2. 2018-10-27 22:44:33 c language

    2018-10-27  22:44:33 c language 标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字.并不是所有的编译器都支持二进制数字,只有一部分编译 ...

  3. ListView 添加 HeaderView常见错误

    1.addHeaderView异常: 最近在做通讯录开发时使用ListView,发现一个奇怪的问题:当添加一个ImageView 作为HeaderView时,发现ImageView长宽始终是1:1的大 ...

  4. 【Redis】Redis学习(一) Redis初步入门

    一.Redis基础知识 1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,h ...

  5. 负载均衡(Load Balancing)学习笔记(三)

    本文讲述实现负载均衡的常用算法. 轮询法(Round Robin) 轮询法是负载均衡中最常用的算法,它容易理解也容易实现.轮询法是指负载均衡服务器(load balancer)将客户端请求按顺序轮流分 ...

  6. Oracle EBS OM 登记订单

    DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...

  7. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

  8. python自学——文件处理(截取文件内容)

    #截断文件内容使用的函数为truncate()来截断文件中的内容# 注意当truncate()括号内没有定义对象时则会删除文件内容:当括号内为指定某个条件时文件会截取从0到指定位置的内容f=open( ...

  9. INCLUDE COMMON FILES IN HTML USING JQUERY

    Simple example for including common files in HTML. JQuery load() function is used for including comm ...

  10. md5sum 和 sha256sum用于 验证软件完整性

    md5sum 和 sha256sum 都用来用来校验软件安装包的完整性,本次我们将讲解如何使用两个命令进行软件安装包的校验: sha 是什么?        sha 为 安全散列算法(英语:Secur ...