🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 网页授权 微信网页授权需要在公众号后台设置回调域名。 网页授权机制有两种 ``scope`` 类型: ``snsapi_base`` 和 ``snsapi_userinfo,以`` ``snsapi_base`` 发起的网页授权,不需要用户手动同意,但只能获取到 ``Openid``,相反,以 ``snsapi_userinfo`` 发起的授权,需要用户后动同意,同意后可获取用户的 ``Openid``, 昵称,头像,性别, 所在的等信息,具体请看官方文档。 ## 业务流程 - 1,检测业务中的会话状态(检测登录),如果会话中已包含用户信息(已登录)则直接到步骤 5,否则步骤 2 - 2,如果当前没有会话(还没有登录),则跳转到授权页 - 3,用户同意授权,页面将自动跳转至回调(callback)页并带上 code - 4,通过 code 换取 accessToken 和 openid,获取用户信息需要要 accessToken 和 openid,将用户信息存入会话,再到步骤 5 - 5,跳转至最终业务页面 跳转到授权页 ```php use Thenbsp\Wechat\OAuth\Client; $client = new Client($wechat); $callbackUrl = 'Your callback url'; header('Location: '.$client->getAuthorizeUrl($callbackUrl)); ``` 根据 Code 换取 AccessToken ```php $accessToken = $client->getAccessToken($_GET['code']); ``` 换取 AccessToken 后,就可以获 **取已授** 权的用户信息 ```php $user = $client->getUser(); ``` 完整流程 ```php use Thenbsp\Wechat\OAuth\Client; $client = new Client($wechat); $callbackUrl = 'Your callback url'; if( !isset($_GET['code']) ) { header('Location: '.$client->getAuthorizeUrl($callbackUrl)); } else { $accessToken = $client->getAccessToken($_GET['code']); $user = $client->getUser(); var_dump($accessToken); var_dump($user); } ```