本文,將詳細論述如何在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教程歡迎關注編程學習網
掃碼二維碼 獲取免費視頻學習資料
- 本文固定鏈接: http://www.wangchenghua.com/post/8387/
- 轉載請注明:轉載必須在正文中標注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料