微信网页授权说明【微信客户端内打开的网页】
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
关于网页授权回调域名的说明
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为: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鉴权
实现步骤
1、判断用户是否登录;
2、跳转到微信授权页面;
3、用户同意授权返回开发者指定页面,在此页面校验数据并利用 openid 获取用户信息;
完整代码
<?php
//请开启 session
class wxController extends grace{
public function index(){
}
public function account(){
$gracewechat = tool('graceWeChat');
if(empty($_SESSION['openid'])){
//微信登录
$backUrl = 'http://www.phpgrace.com/wx/login';
$gracewechat->wxLogin($backUrl);
}else{
echo '您已经登录, openid : '.$_SESSION['openid'];
}
}
public function login(){
//检查 url
if(empty($_GET['code']) || empty($_GET['state'])){exit('参数错误,请返回重试!E01');}
if(empty($_SESSION['wxLoginState'])){exit('参数错误,请重试!E02');}
if($_SESSION['wxLoginState'] != $_GET['state']){exit('参数错误,请重试!E03');}
//获取用户 [ openid ]
$gracewechat = tool('graceWeChat');
$user = $gracewechat->wxLoginBack();
if(empty($user) || empty($user['openid'])){exit('登录失败');}
//获取用户信息 [ 用户全部信息 ]
$user = $gracewechat->getUser($user['openid']);
//利用 session 记录 openid
session_start();
$_SESSION['openid'] = $user['openid'];
session_write_close();
print_r($user);
}
}