Skip to content
thenbsp edited this page Nov 27, 2017 · 19 revisions

业务流程

  1. 检测业务中的会话状态(检测登录),如果会话中已包含用户信息(已登录)则直接到步骤 5,否则步骤 2
  2. 如果当前没有会话(还没有登录),则跳转到授权页
  3. 用户同意授权,页面将自动跳转至回调(callback)页并带上 code
  4. 通过 code 换取 AccessToken,通过 AccessToken 获取用户信息并存入会话。
  5. 跳转至最终业务页面

网页授权

微信网页授权需要在公众号后台设置回调域名。

网页授权机制有两种 scope 类型: snsapi_basesnsapi_userinfo,以 snsapi_base 发起的网页授权,不需要用户手动同意,但只能获取到 openid,相反,以 snsapi_userinfo 发起的授权,需要用户手动同意,同意后可获取用户的 openid, 昵称,头像,性别, 所在地等信息。

use Thenbsp\Wechat\OAuth\Client;

$client = new Client('appid', 'appsecret');

if( !isset($_GET['code']) ) {
    header('Location: '.$client->getAuthorizeUrl());
}

$accessToken = $client->getAccessToken($_GET['code']);

var_dump($accessToken->toArray());

获取用户信息

$userinfo = $accessToken->getUser();

var_dump($userinfo->toArray());

指定 scope

$client->setScope('snsapi_userinfo');

指定 callback

$client->setRedirectUri('http://example.com/callback.php');