laravel 實現weibo第三方登陸

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);
    }

}

以上內容部分轉自:

https://segmentfault.com/a/1190000003103229 

http://socialiteproviders.github.io/providers/qq/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章