admin管理员组文章数量:1558102
前端在授权微信登录时需要获取用户的微信信息,比如 openId ,头像等信息.
微信网页授权文档 https://mp.weixin.qq/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.使用示例
3.1 通过 code 获取微信用户信息
# 测试路由
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);
});
3.2 通过 access_token 和 open_id 获取微信用户信息
这种方法时不建议使用.
$accessToken = 'ACCESS_TOKEN';
$openID = 'OPEN_ID';
$driver = Socialite::driver('weixin');
$driver->setOpenId($openID);
$oauthUser = $driver->userFromToken($accessToken);
版权声明:本文标题:Laravel 社会化登录之微信网页授权登录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727388178a1112460.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论