Laravel 通过网页授权的微信 CODE 返回用户信息

时间:2019-01-09
本文章向大家介绍Laravel 通过网页授权的微信 CODE 返回用户信息,主要包括Laravel 通过网页授权的微信 CODE 返回用户信息使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前端在授权微信登录时需要获取用户的微信信息,比如 openId ,头像等信息.

微信网页授权文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

前端在获取 code 后需要将 code 返回给开发者的服务器,开发者的服务器通过前端返回的 code 去微信服务器换取 access_token ,然后开发者服务器利用  access_token 和用户的 openid 拿到用户信息.

socialiteproviders 为 Laravel Socialite 提供了更多的第三方登录方式,基本上你需要的,都能在这里找到.

我们可以利用 微信的 Provider 实现我们的需求.

1. 安装微信 Provider 

composer require socialiteproviders/weixin

2. 配置

app/Providers/EventServiceProvider.php

.
.
protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // add your listeners (aka providers) here
        'SocialiteProviders\Weixin\WeixinExtendSocialite@handle'
    ],
];
.
.

config/services.php

'weixin' => [
    'client_id' => env('WEIXIN_KEY'),
    'client_secret' => env('WEIXIN_SECRET'),
    'redirect' => env('WEIXIN_REDIRECT_URI')
],

.env

# 微信
WEIXIN_KEY=wxbde46abaa8d3xx
WEIXIN_SECRET=ae0059ed19c9367xxxx
WEIXIN_REDIRECT_URI=http://larxxx

3.使用示例

# 测试路由
Route::get('test', function () {
    $code = '081euRI705A3iF1MmoF70TNQI70euRIt';
    $driver = Socialite::driver('weixin');
    $response = $driver->getAccessTokenResponse($code);
    $driver->setOpenId($response['openid']);
    $oauthUser = $driver->userFromToken($response['access_token']);
    dd($oauthUser);
});