編程學習網 > PHP技術 > laravel > laravel請求微博第三方接口,實現微博登錄!
2021
07-31

laravel請求微博第三方接口,實現微博登錄!

本文,將詳細論述如何在laravel框架中,實現微博登錄。

1. 準備工作

進行開發之前,首先需要在微博開放平臺接入網站。

1、注冊一個微博賬號(估計大家都有),然后登錄微博

2、前往微博開放平臺,這時,右上角顯示已登錄。

3、如果需要更多的高級功能,可以進行開發者認證(點擊右上角頭像→開發者信息)

4、點擊級別與權限,可以查看當前賬戶擁有的權限。

下圖中的賬號,已經擁有了授權服務。

5、點擊微鏈接→網站接入,可以將自己的網站接入。

6、點擊立即接入,輸入應用名稱,點擊創建

7、點擊創建后,自動創建成功,自動跳轉至應用信息頁面。這里可以看到應用的App Key 和App Secret。

  • 如果應用需要上線,則對信息進行完善需要對應用的信息進行完善。
  • 如果只是學習開發技術,則不需要完善信息。

8、審核通過的網站應用,是可以上線運營的。

9、填寫應用信息→高級信息中的OAuth2.0 授權設置的回調頁,如下:

如果網站基本信息已經審核通過,則下面的安全設置等其他信息建議填寫完整。

10、如果只是測試,未提交基本信息審核,則需要添加測試賬號信息。

如果已經審核通過,則不需要添加測試賬號。

至此,網站接入完成,我們開發中需要的三個參數如下:

  • App Key
  • App Secret
  • 授權回調頁

2. 實現微博登錄并獲取基本信息

1、創建一個Laravel項目。

2、添加依賴插件/服務:

打開Terminal,使用如下 composer 命令即可添加

composer require socialiteproviders/weibo

如圖:

3、添加服務提供器Service Provider

此步驟和其他登錄方式添加內容相同。

打開文件 config/app.php ,找到 provider 字典,添加的內容如下:


'providers' => [
    //Laravel\Socialite\SocialiteServiceProvider::classo //有博文說,如果有這行,請注釋掉     SocialiteProviders\Manager\ServiceProvider::class,//添加這樣 ],


4、添加門面Facades Aliase

此步驟和其他登錄方式添加內容相同。

同樣在 config/app.php 中,往下翻,即可看到 aliases 字典,添加的內容如下:


'aliases' => [
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,//追加這行 ],


5、添加事件處理器 EventServiceProvider

此步驟和其他登錄方式添加內容類似,追加。

在文件 app/Providers/EventServiceProvider.php 中,找到 $listen 數組,添加內容如下:


protected $listen = [
    //添加下面這個處理器     'SocialiteProviders\Manager\SocialiteWasCalled' => [
        //如果已經實現了QQ登錄,這里追加下面這一行         'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',
    ],
];


6、配置參數

在上一節的末尾,說明了需要的參數。

在配置文件 config/services.php 中,添加如下內容:


'weibo' => [
    'client_id' => env('WEIBO_KEY'),
    'client_secret' => env('WEIBO_SECRET'),
    'redirect' => env('WEIBO_REDIRECT_URI'),  
],


然后在 .env 文件中,設置參數

WEIBO_KEY=APP ID
WEIBO_SECRET=APP Key
WEIBO_REDIRECT_URI=網站回調地址

7、添加路由

在 web.php 路由文件中,添加如下路由,其中各個路由的說明見注釋。


// 引導用戶到新浪微博的登錄授權頁面 Route::get('login/weibo', 'AuthController@weiboLogin'); // 用戶授權后新浪微博回調的頁面 Route::get('oauth/weibo', 'AuthController@weiboCallback');


8、創建控制類

php artisan make:controller AuthController

9、編寫控制類內容,并測試:


<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Laravel\Socialite\Facades\Socialite; class AuthController extends Controller {

   //獲取微博登錄頁面,并跳轉     public function weiboLogin() {

       return Socialite::driver('weibo')->redirect();

   }

   //登錄成功后,回調頁面獲取登錄用戶信息     public function weiboCallback() {

       $userInfo = Socialite::driver('weibo')->user();

       dd($userInfo);

   }

}


3. 效果測試

1、訪問登錄頁面,路由中已設置網址為:http://yourdomain.com/login/weibo

2、自動跳轉至微博官方的授權登錄頁面

以上就是“laravel請求微博第三方接口,實現微博登錄!”的詳細內容,想要獲取更多laravel教程歡迎關注編程學習網

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取