哎呀,終於用laravel的插件成功了,雖然之前已經寫過原生的,但是本着不優雅不laravel的原則,還是測試了下插件,結論就是 真tm優雅。
1. 安裝 laravel/socialite
如果你已經安裝過此 Package,則可以跳過此步驟。
1). 直接運行以下命令安裝擴展包composer require laravel/socialite
2). 在你的 config/app.php 文件中添加以下配置信息'providers' => [ ... // 注意:下文中要集成 Socialite Driver 擴展,因此將會刪除此行配置。 Laravel\Socialite\SocialiteServiceProvider::class,],'aliases' => [ ... 'Socialite' => Laravel\Socialite\Facades\Socialite::class,],
2. 安裝 socialiteProviders/weixin
1). 直接運行以下命令安裝擴展包composer require socialiteproviders/weixin
2). 在你的 config/app.php文件中添加以下配置信息'providers' => [ ... # 注意:如果你之前已經安裝了 laravel/socialite,則務必刪除掉下面的配置 // 刪除這行配置 Laravel\Socialite\SocialiteServiceProvider::class, # 新增配置 \SocialiteProviders\Manager\ServiceProvider::class,],
3). 在你的 app/Providers/EventServiceProvider.php文件中添加以下事件處理器protected $listen = [ \SocialiteProviders\Manager\SocialiteWasCalled::class => [ 'SocialiteProviders\Weixin\WeixinExtendSocialite@handle', ],];
3. 添加配置
1). 在你的 .env文件中添加以下配置WEIXIN_KEY=你的AppIDWEIXIN_SECRET=你的AppSecretWEIXIN_REDIRECT_URI=你的回調地址# 例如WEIXIN_KEY=wxba52fab0726b9023WEIXIN_SECRET=xxxxxxxxxxxxxxxxxxWEIXIN_REDIRECT_URI=https://phphub.org/auth/callback?driver=wechat
2). 在你的 config/services.php文件中添加以下配置'weixin' => [ 'client_id' => env('WEIXIN_KEY'), 'client_secret' => env('WEIXIN_SECRET'), 'redirect' => env('WEIXIN_REDIRECT_URI'), # 這一行配置非常重要,必須要寫成這個地址。 'auth_base_uri' => 'https://open.weixin.qq.com/connect/qrconnect',],
至此,安裝全部完成。
代碼調用
准備工作都完成以后,現在就到了接口對接階段。public function getCheck(){
return \Socialite::with('weixin')->redirect();
}
public function getOpenid(){
$oauthUser = \Socialite::with('weixin')->user();
Session::set('oauthUser', $oauthUser);
return redirect("/wechat/dbcheck");
}
說實話,用過一次后是比較優雅,但學起來是不怎么優雅的。