-
Notifications
You must be signed in to change notification settings - Fork 312
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');