以下是一个简单的Laravel8集成微信扫码登录的示例代码:
具体还得大家调整使用
1,安装 overtrue/laravel-socialite 库,运行以下命令:
composer require overtrue/laravel-socialite
2,在 .env 文件中添加以下配置:
WECHAT_APP_ID=your_wechat_app_id
WECHAT_APP_SECRET=your_wechat_app_secret
WECHAT_REDIRECT_URI=http://y.goolibao.com/login/wechat/callback
3,在 config/services.php 文件中添加以下配置:
<?php
return [
'wechat' => [
'client_id' => env('WECHAT_APP_ID'),
'client_secret' => env('WECHAT_APP_SECRET'),
'redirect' => env('WECHAT_REDIRECT_URI')
]
];
4,创建授权回调路由和控制器方法,在 routes/web.php 中添加以下路由:
use AppHttpControllersLoginController;
Route::get('/login/wechat', [LoginController::class, 'wechat'])->name('login.wechat');
Route::get('/login/wechat/callback', [LoginController::class, 'wechatCallback']);
5,创建控制器 app/Http/Controllers/LoginController.php,并添加以下方法:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Exception;
use OvertrueSocialiteUser;
use Socialite;
class LoginController extends Controller
{
public function wechat()
{
return Socialite::driver('wechat')->scopes(['snsapi_login'])->redirect();
}
public function wechatCallback(Request $request)
{
try {
/** @var User $user */
$user = Socialite::driver('wechat')->user();
// 在此处处理用户信息
} catch (Exception $e) {
return redirect()->route('login');
}
}
}
6,在 config/app.php 文件中添加以下配置:
<?php
return [
'providers' => [
// ...
OvertrueLaravelSocialiteServiceProvider::class,
],
'aliases' => [
// ...
'Socialite' => LaravelSocialiteFacadesSocialite::class,
]
];
7,配置微信开放平台的网页授权回调域名,并在 config/services.php 文件中添加以下配置:
<?php
return [
'wechat' => [
'oauth' => [
'scopes' => ['snsapi_login'],
'callback' => '/login/wechat/callback',
]
]
];
8,运行程序,在浏览器中访问 /login/wechat 路径,即可开始微信扫码登录流程
你可以按照此方法试试哦!不会的可以有找我帮忙
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!