Github地址
https://github.com/SocialiteProviders
微博第三方登錄實(shí)現(xiàn)過程及舍。
新浪微博(Weibo)
1、安裝
// This assumes that you have composer installed globally
composer require socialiteproviders/weibo
2窟绷、服務(wù)提供者(config\app.php
)
'providers' => [``
// a whole bunch of providers
// remove 'Laravel\Socialite\SocialiteServiceProvider',
\SocialiteProviders\Manager\ServiceProvider::class, // add
];
注:如已添加锯玛,請(qǐng)Laravel\Socialite\SocialiteServiceProvider
從 providers[]
陣列中刪除config\app.php
。
添加Socialite
門面(如果已有略過本操作):
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
3.添加時(shí)間監(jiān)聽器(App/Providers/EventServiceProvider
):
protected $listen = [
'SocialiteProviders\Manager\SocialiteWasCalled' => [
'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',
],
];
新浪微博開放平臺(tái)(http://open.weibo.com/)創(chuàng)建一個(gè)App Key
和App Secret
兼蜈。
然后在配置文件app/services.php
中添加weibo
配置項(xiàng):
'weibo' => [
'client_id' => env('WEIBO_KEY', 'App Key'),
'client_secret' => env('WEIBO_SECRET', 'App Secret'),
'redirect' => env('WEIBO_REDIRECT_URI', '授權(quán)回調(diào)頁')
],
4.controller
在控制器添加代碼:
/**
* 重定向用戶信息到 weibo 認(rèn)證頁面攘残。
*
* @return \Illuminate\Http\Response
*/
public function redirectToProvider(Request $request)
{
//stateless 方法可用于禁止會(huì)話狀態(tài)驗(yàn)證。這個(gè)方法在向 API 添加社會(huì)化身份驗(yàn)證時(shí)非常有用为狸。
return Socialite::driver('weibo')->stateless()->redirect();
}
/**
* 獲取來自 weibo 返回的用戶信息歼郭。
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback(Request $request)
{
$user = Socialite::driver('weibo')->stateless()->user();
$token = $user->token;
echo $token;
$refreshToken = $user->refreshToken; // not always provided
echo $refreshToken;
$expiresIn = $user->expiresIn;
echo $expiresIn;
// All Providers
dd($user->getId());
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();
}
添加路由:
Route::get('login/weibo', 'UsersController@redirectToProvider');
Route::get('login/weibo/callback', 'UsersController@handleProviderCallback');
在瀏覽器中訪問本地配置域名+/login/weibo
進(jìn)行測試。