微信OAuth2.0网页授权

这是一个实用且通用的功能,说通俗点就是用微信帐号登录第三方网站,经用户确认后,允许网站获取用户基本资料。

技术资料参见微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842&token=&lang=zh_CN

1、实现这一功能需要先设置授权回调页面域名,如下图:

2、主要代码(只获取用户信息,登录网站部分略)

<?php
if(isset($_GET[‘code‘])){
    $code = $_GET[‘code‘];
    $userInfo = getUserInfo($code);
    echo $userInfo;
}
else{
    echo "Error!";
}

function getUserInfo($code){
    $appid = "wx04d2578db7e1b736";
    $appsecret = "43b9557d223737d01ababb39a4b4b14d";
    $accessToken = "";

    //根据code获取token
    $tokenURL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
    $tokenJson = https_request($tokenURL);
    $tokenArray = json_decode($tokenJson,true);
    $accssToken = $tokenArray[‘access_token‘];
    $openid = $tokenArray[‘openid‘];

    //拉取用户信息
    $userInfoURL = "https://api.weixin.qq.com/sns/userinfo?access_token=$accssToken&openid=$openid";
    $userInfoJson = https_request($userInfoURL);
    $userInfoArray = json_decode($userInfoJson,true);

    return $userInfoJson;
}

function https_request($url){

    //return $url;
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $data = curl_exec($curl);
    if(curl_errno($curl)){
        return ‘ERROR‘.curl_error($curl);
    }
    curl_close($curl);
    return $data;
}
?>

3,最后按以下格式访问,获得用户信息

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx04d2578db7e1b736&redirect_uri=http://essays.duapp.com/getUserInfo.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

返回信息大致如下(未经处理)

{
    "openid": "owThxwlQQV8WQynaTZmMI6yi29-s",
    "nickname": "自由行走",
    "sex": 1,
    "language": "zh_CN",
    "city": "Kunming",
    "province": "Yunnan",
    "country": "CN",
    "headimgurl": "http://wx.qlogo.cn/mmopen/eGrUpN8dpomatpwS0VrRIh6n9deJACV9S9F8vqxjmxicd0Gt5QLl0BNC4zeKSoS24umarmibP7rzf1obOJibVvG9d8icK7cjibTiaE/0",
    "privilege": [ ]
}

时间: 2024-07-29 21:18:00

微信OAuth2.0网页授权的相关文章

微信OAuth2.0网页授权接口

微信OAuth2.0网页授权接口 微信OAuth2.0网页授权接口的thinkphp实现版本号.主要实现了oauth网页受权,以及部分其它接口. 用法 为什么用OAuth2.0受权? 通过OAuth2.0受权的网页将会获取到打开者的微信信息.甚至包含微信昵称.头像等实用的数据,开发人员们能够凭此设计出很多其它更丰富的页面应用,比方近期一直非常火爆的红包类活动.除此之外还有个额外的优点,就是能够控制页面在非微信浏览器中无法打开,能够降低代码被人窥窃的风险. 那么红包类活动是怎样使用OAuth2.0

微信 OAuth2.0 网页授权

1.登录微信公众平台,在 "开发者中心" 找到 点击右侧的修改. 授权回调域名配置规范为全域名并且不带http,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html . http://www.qq.com/login.html 都可以进行OAuth2.0鉴权.但http://pay.qq.com . http://music.qq.com . http://qq.com无法进行OAuth2.0鉴权. 如:www

PHP微信OAuth2.0网页授权,获取用户信息代码类封装demo(二)

一.这个文件微信授权使用的是OAuth2.0授权的方式.主要有以下简略步骤: 第一步:判断有没有code,有code去第三步,没有code去第二步 第二步:用户同意授权,获取code 第三步:通过code换取网页授权access_token 第四步:使用access_token获取用户信息 二.代码GetWxUser.php 1 <?php 2 /** 3 * 获取微信用户信息 4 * @author: Lucky hypo 5 */ 6 class GetWxUser{ 7 private $

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

1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的第三方网页,fn_system.php <?php if(empty($_SESSION['user'])){ header("Location:http://www.aaa.net/uc/fn_wx_login.php"); }else{ print_r($_SESSION['user']); } ?> 3.访问第三方网页时,如果检查session中不存在会话信息,则跳转至登陆页,fn_wx_login

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

https://github.com/HADB/GetWeixinCode GetWeixinCode 使用方法 部署get-weixin-code.html至你的微信授权回调域名的目录下,例如http://wx.abc.com/get-weixin-code.html 在其他页面的使用方式如下,类似于直接通过微信回调的方式,只是将回调地址改成了get-weixin-code.html的地址,另外省 去了response_type参数(因为它只能为code)以及#wechat_redirect的

微信公众平台oauth2.0网页授权

本篇文章你将学到:在自己做的微信网站里,利用oauth2.0网页授权接口获取用户的信息(openid,姓名,性别,地区,头像等).如大转盘等游戏记录哪个微信用户获得什么奖品.H5等小游戏需要把分数与对应用户捆绑在一起等网页应用. 微信公众平台oauth2.0网页授权能干什么 它是在自己做的网站中不用用户登录来获取微信用户相关信息的,进而实现相关业务. 说明与注意 1.网页授权分为两种, 一种为只获取openid  (基本授权 snsapi_base) 一种为获取用户全部信息 (高级授权 snsa

***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权

本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言.本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录. 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的access_token,一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为全局Access Token和授权Access

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

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure

Force.com微信开发系列(七)OAuth2.0网页授权

OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源(如用户个人信息.照片.视频.联系人列表),而无须将用户名和密码提供给第三方应用.本文将详细介绍OAuth协议以及在微信里的具体实现. OAuth2.0协议介绍 OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0. OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程. OAuth2.0允许用户提供一个令牌,而不是用户