微信OAuth2.0网页授权接口
微信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.开通后将appID、appsecret、Token填入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.php中wx_webauth_expire设置,建议不要大于微信的过期时间7200秒。
注意:
- 微信OAuth2.0受权分为snsapi_base (不弹出授权页面。直接跳转,仅仅能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,仅仅要用户授权,也能获取其信息),AuthAction.class.php默觉得snsapi_base,并且session中仅仅记录了snsapi_base中的基础数据,如须要snsapi_userinfo请自行改动。
- 详细的实现方法见代码凝视。
微信OAuth2.0网页授权接口的更多相关文章
- 转载:解决微信OAuth2.0网页授权回调域名只能设置一个的问题
项目地址:https://github.com/HADB/GetWeixinCode 说明:微信项目很多,但是回调域名有限,经常使用,做个笔记. 解决微信OAuth2.0网页授权只能设置一个回调域名的 ...
- 解决微信OAuth2.0网页授权回调域名只能设置一个的问题
https://github.com/HADB/GetWeixinCode GetWeixinCode 解决微信OAuth2.0网页授权回调域名只能设置一个的问题 使用方法 部署get-weixin- ...
- 微信OAuth2.0网页授权设置一个域名需多个域名使用的问题
最近遇到一个问题,一个微信公众号,需要在多个域名上使用OAuth2.0网页授权,但微信OAuth2.0网页授权回调域名只能设置一个. 解决办法: 通过多一次的跳转,解决了微信限制回调域名只能设置一个的 ...
- 微信OAuth2.0网页授权
1.OAuth2.0网页授权 关于网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页 ...
- 微信OAuth2.0网页授权php示例
1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的第三方网页,fn_system.php <?php if(empty($_SESSION['user'])){ header ...
- 微信公众平台开发(71)OAuth2.0网页授权
微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使 ...
- 微信公众平台开发-OAuth2.0网页授权(含源码)
微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...
- 微信公众平台开发(71)OAuth2.0网页授权-摘抄
微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友 ...
- 微信OAuth2.0网页受权php
www.MyException.Cn 网友分享于:2014-01-19 浏览:2504次 微信OAuth2.0网页授权php示例 1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的 ...
随机推荐
- Git 及 GitHub 使用
Git bash 的常用命令 1. pwd 查看当前所在目录 2. cd cd .. 返回上一级 cd 目录 进入对应的目录 3. ls 查看当前文件夹的内容 ...
- android:首页点击返回键,两秒内再次点击退出系统
//记录用户首次点击返回键的时间 private long firstTime = 0; /** * 通过监听keyUp 实现双击返回键退出程序 * @param keyCode * @param e ...
- Python图像识别(聚类)
# -*- coding: utf-8 -*- """ Created on Fri Sep 21 15:37:26 2018 @author: zhen "& ...
- windows系统相关命令及问题排查实践
1. 如何查看哪个端口被哪个程序占用? Netstat –ano|findstr "80" ->找到监听80端口的pid tasklist|findstr “<PID号 ...
- kafka入门1:安装及配置
1下载 官方下载地址:https://kafka.apache.org/downloads 案例使用版本:kafka_2.11-1.1.0.tgz 2上传服务器 使用ftp工具将压缩包放置到服务器上 ...
- 红帽7中firewall常用指令
1.端口管理 (1)列出DMZ区域开放的端口 ~]#firewall-cmd --zone=dmz --list-ports (2)8080端口加入dmz区 ~]#firewall-cmd --zon ...
- 反向代理负载均衡调度:nginx
一.概述 反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个 ...
- Docker容器学习与分享11
容器的数据存储 容器在删除之后,里面所有的数据都会丢失,如果其他程序需要用到某一部分的数据那就没办法了. 所以可以将容器内的数据存储到容器之外,比如存储到宿主机内.(Docker提供了好几种方法) 将 ...
- from urllib.request import urlopen
from urllib.request impor urlopen (负责打开浏览url内的html 文本) re.compile(r'alex(?P<name>\d+)and' ...
- JavaScript中的单例模式
单例模式 在JavaScript中,单例(Singleton)模式是最基本又最有用的模式之一.这种模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的变量进行访问.确保单例 ...