boolw / baidusocialite by boolw

openapi.baidu.com OAuth2 Provider for Laravel Socialite
12
0
2
Package Data
Maintainer Username: boolw
Maintainer Contact: boolw@boolw.com (boolw)
Package Create Date: 2017-01-04
Package Last Update: 2017-01-05
Language: PHP
License: MIT
Last Refreshed: 2025-02-06 15:02:31
Package Statistics
Total Downloads: 12
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

baidusocialite

openapi.baidu.com OAuth2 Provider for Laravel Socialite

composer require boolw/baidusocialite

注册服务提供者(同时注释掉原有的Socialite提供者):

//Laravel\Socialite\SocialiteServiceProvider::class,
SocialiteProviders\Manager\ServiceProvider::class,

添加Socialite门面(如果已有略过本操作):

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

添加事件监听器(App/Providers/EventServiceProvider):

protected $listen = [
    'SocialiteProviders\Manager\SocialiteWasCalled' => [
        'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',
    ],
];

去新浪微博开放平台(https://openapi.baidu.com/)创建一个新的网站应用以获取相应的App Key和App Secret。需要注意的是不比GitHub,新浪微博需要创建的网站应用对应网站在外网可以访问。

然后在配置文件app/services.php中添加weibo配置项:

'baidu' => [
    'client_id' => 'your weibo app App Key',
    'client_secret' => 'your weibo app App Secret',
    'redirect' => 'http://laravel.app:8000/auth/baidu/callback'
]

接下来我们要对AuthController略作修改:

public function redirectToProvider(Request $request,$service)
{
    return Socialite::driver($service)->redirect();
}

public function handleProviderCallback(Request $request,$service)
{
    $user = Socialite::driver($service)->user();
    dd($user);
}

以支持多种不同认证提供者的切换。

最后需要修改认证路由规则如下:

Route::get('auth/{service}', 'Auth\AuthController@redirectToProvider');
Route::get('auth/{service}/callback', 'Auth\AuthController@handleProviderCallback');

至此就可以在浏览器中访问http://laravel.app:8000/auth/baidu进行测试了。