Laravel 10 Socialite苹果登录报错:Driver [apple] not supported
以下是针对性的排查和解决步骤:
1. 调整事件监听的注册方式
Laravel 10中事件监听的写法可能因细节导致注册失败,可将EventServiceProvider中的数组配置替换为boot方法内手动注册:
public function boot() { parent::boot(); \Illuminate\Support\Facades\Event::listen( \SocialiteProviders\Manager\SocialiteWasCalled::class, function ($event) { $event->extendSocialite('apple', \SocialiteProviders\Apple\AppleExtendSocialite::class); } ); }
执行命令清除并重建事件缓存:
php artisan event:clear php artisan event:cache
2. 验证依赖包完整性
Apple登录Provider依赖socialiteproviders/manager包才能注册Driver,执行命令检查是否安装:
composer show socialiteproviders/manager
若未找到该包,立即安装:
composer require socialiteproviders/manager
3. 彻底清理配置缓存
缓存未更新是常见诱因,执行命令完全清除后重建缓存:
php artisan config:clear php artisan route:clear php artisan config:cache
本地测试时可仅执行config:clear关闭缓存,直接测试排除缓存干扰。
4. 检查services.php配置格式
确保config/services.php中的Apple配置无语法错误:
'apple' => [ 'client_id' => env('APPLE_CLIENT_ID'), 'client_secret' => env('APPLE_CLIENT_SECRET'), 'redirect' => env('APPLE_REDIRECT_URI'), ],
注意Apple的client_id通常为团队ID.应用包名格式,需确认填写无误。
5. 排查版本兼容性
检查Laravel Socialite和Apple Provider是否兼容Laravel 10:
- 执行
composer show laravel/socialite,确保版本为^5.0(Laravel 10兼容版本) - 执行
composer show socialiteproviders/apple,确保其支持Socialite 5.x
若版本不兼容,更新对应包到兼容版本后重新测试。
内容的提问来源于stack exchange,提问作者Andrew Waegel
相关产品推荐
相关产品推荐

