首先,讓我們來了解下,什麼是第三方登入,其實說白了就是在自己的web程式中應用於第三方的介面來進行登入,譬如:QQ、微信、微博,GitHub等等。
如上圖所示:
然後,我們來了解下,怎麼去應用第三方的登入,第三方登入,主要分為兩種:第一種:純粹的原生程式碼來寫;第二種:用第三方包裝好的程式碼加以應用,嵌入到自己的程式中就行,在來這裡,我們一一來介紹著兩種方法。(基於laravel框架)
第一種,用原生的程式碼進行編寫。總共步驟如下:
- 建立應用
- 安裝
- 註冊服務提供者
- 新增Socialite門面
- 在新增事件監聽器
- 在設定裡新增服務配置
- 修改.env檔案
- 使用
-
建立應用
登入 qq 互聯建立網站應用 網址:https://connect.qq.com/index.html,
登入完之後進行註冊,填寫資訊,資訊按照提示一步一步來就行,沒有難度。傻瓜式操作,直接下一步就行。弄完之後,要等個一兩天就會qq互聯平臺稽核通過的,通過之後就能看到以下的介面:
點選應用管理就能看到稽核結果。
2.安裝
開啟編輯器,我在這裡演示的是用Phpstorm編輯器, 開啟Composer 複製以下程式碼直接執行就行:composer require socialiteproviders/qq
3.註冊服務提供者
在config/app.php
中providers
新增 :'providers' => [ SocialiteProviders\Manager\ServiceProvider::class, ... ];
4.新增Socialite門面
在config/app.php
中aliases
新增 :'aliases' => [ 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ]
5.在新增事件監聽器
在App/Providers/EventServiceProvider
中新增事件監聽 :protected $listen = [ 'SocialiteProviders\Manager\SocialiteWasCalled' => [ 'SocialiteProviders\QQ\QqExtendSocialite@handle' ], ];
6.在設定裡新增服務配置
在config/services.php
中新增:'qq' => [ 'client_id' => env('QQ_KEY'), 'client_secret' => env('QQ_SECRET'), 'redirect' => env('QQ_REDIRECT_URI'), ],
7.修改.env檔案
在.env
中新增:QQ_KEY=xxxxx QQ_SECRET=xxxxxxx QQ_REDIRECT_URI=call_back 注意:這裡的QQ_KEY和QQ_SECRET是自己qq互聯平臺中應用管理中出現的,可以通過檢視能找到自己的相關資訊,如圖:
8.使用
在上面所有步驟完成之後,就可以進行再自己的專案中嵌入了。//qq登入 注意名稱空間 實在前臺登入的控制器中qqLogin登入方法中進行執行: public function qqLogin(){ return Socialite::with('qq')->redirect(); }
//回撥函式中執行 也就是您在哪裡呼叫的回撥qq public function qqBack (Request $request) { // 這裡設定了判斷,判斷是否是用qq登入還是郵件登入 if ($request->state && $request->code){ $qc=new \QC(); $access_token = $qc->qq_callback(); $openid=$qc->get_openid (); $qc=new \QC($access_token,$openid); $userInfo=$qc->get_user_info(); $user=User::where('open_id',$openid)->first(); //dd ($userInfo); if(!$user){ $user = new User(); $user->open_id = $openid; $user->name = $userInfo['nickname']; $user->icon = $userInfo['figureurl_1']; $user->save(); } //執行登入 auth ()->login ($user); //跳轉 return redirect('/'); } }
對於第三方qq登入,如果還有什麼不懂的問題,建議您看一下qq互聯中sdk文件,
其實,第三方登入都會有一個文件的手冊的,這裡就告訴您一個方法,不管您之前有沒有接觸到這一類,首先找一下應用手冊,其他的按照手冊上步驟來操作就可以了。有什麼不懂的問題可以聯絡本人,發我郵件,本人都會回覆的,謝謝!郵箱:729589198@qq.com
本作品採用《CC 協議》,轉載必須註明作者和本文連結