-
Notifications
You must be signed in to change notification settings - Fork 317
oauth_client
thenbsp edited this page Nov 27, 2017
·
19 revisions
- 检测业务中的会话状态(检测登录),如果会话中已包含用户信息(已登录)则直接到步骤 5,否则步骤 2
- 如果当前没有会话(还没有登录),则跳转到授权页
- 用户同意授权,页面将自动跳转至回调(callback)页并带上 code
- 通过
code
换取AccessToken
,通过AccessToken
获取用户信息并存入会话。 - 跳转至最终业务页面
微信网页授权需要在公众号后台设置回调域名。
网页授权机制有两种 scope
类型: snsapi_base
和 snsapi_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());
$client->setScope('snsapi_userinfo');
$client->setRedirectUri('http://example.com/callback.php');