1.安裝
composer require socialiteproviders/weibo
2.添加 Service Provider
如果之前添加過 Socialite Provider,得先註釋掉:
文件 config/app.php
'providers' => [
// Laravel\Socialite\SocialiteServiceProvider::class,
SocialiteProviders\Manager\ServiceProvider::class, // add
],
3.添加 Facades Aliase
如果之前安裝 Socialite 時添加過,就不需要再添加了。
還是文件 config/app.php
'aliases' => [
'Socialite' => Laravel\Socialite\Facades\Socialite::class, // add
],
4.添加事件處理器
文件 app/Providers/EventServiceProvider.php
protected $listen = [
'SocialiteProviders\Manager\SocialiteWasCalled' => [
'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',
],
];
5.添加路由
文件 app/Http/routes.php
// 引導用戶到新浪微博的登錄授權頁面
Route::get('auth/weibo', 'Auth\AuthController@weibo');
// 用戶授權後新浪微博回調的頁面
Route::get('auth/callback', 'Auth\AuthController@callback');
6.配置
文件 config/services.php
'weibo' => [
'client_id' => env('WEIBO_KEY'),
'client_secret' => env('WEIBO_SECRET'),
'redirect' => env('WEIBO_REDIRECT_URI'),
],
文件 .env
WEIBO_KEY=App Key
WEIBO_SECRET=App secret WEIBO_REDIRECT_URI=Callback URL
7.到新浪微博申請加入開發者
http://open.weibo.com/
如果只是個人練手第三方登陸,可以不進行審覈等操作
在設置回調地址的時候需要設置完全,最好是設置到方法級別。如果配置了域名的話就不必設置完全
8.代碼實現
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Socialite;
class UserAuthController extends Controller
{
public function weiboSignInProcess(){
$redirect_url = env('WEIBO_REDIRECT_URI');
return Socialite::driver('weibo')->scopes(['user_friends'])->redirectUrl($redirect_url)->redirect();
}
public function weiboSignInCallbackProcess(){
$redirect_url = env('WEIBO_REDIRECT_URI');
$userData = Socialite::driver('weibo')->stateless()->user();
dd($userData);
}
}
以上內容部分轉自: