coloredscience / laravel-auth
Colored ScienceProvider for Laravel Socialite
此软件包的官方仓库似乎已不存在,因此软件包已被冻结。
dev-master
2019-07-01 07:35 UTC
Requires
- php: ^5.6 || ^7.0
- socialiteproviders/manager: ~2.0 || ~3.0
This package is auto-updated.
Last update: 2023-03-29 01:17:11 UTC
README
这是一个用于ColoredScience身份验证的Laravel Socialite的扩展提供者,它使用SocialiteProviders Manager。
安装
composer require laravel/socialite
composer require coloredscience/laravel-auth
在Colored User上创建您的应用程序以获取API密钥。
配置
-
在
config\services.php中添加一个可配置的服务以连接Laravel Socialite'coloredsci' => [ 'client_id' => env('CS_CLIENT_ID'), 'client_secret' => env('CS_CLIENT_SECRET'), 'redirect' => env('APP_URL').env('CS_REDIRECT'), ], -
如果您已经添加,请从
config\app.php中的providers[]数组中删除Laravel\Socialite\SocialiteServiceProvider -
代替添加此提供者
'providers' => [ // a whole bunch of providers // remove 'Laravel\Socialite\SocialiteServiceProvider', \SocialiteProviders\Manager\ServiceProvider::class, // add ]; -
将
SocialiteProviders\Manager\SocialiteWasCalled事件添加到app/Providers/EventServiceProvider中的listen[]数组 -
将Colored Science监听器添加到您刚刚创建的
SocialiteProviders\Manager\SocialiteWasCalled[]protected $listen = [ \SocialiteProviders\Manager\SocialiteWasCalled::class => [ 'ColoredScience\\LaravelAuth\\ColoredScienceExtendSocialite@handle', ], ]; -
创建您的认证控制器以管理认证流程
php artisan make:controller Auth\\CSAuthController -
注册您的认证路由
Route::get('/login', 'Auth\CSAuthController@login' )->name( 'login' ); Route::get('/callback', 'Auth\CSAuthController@handleCallback' )->name( 'callback' ); Route::get('/logout', 'Auth\CSAuthController@logout' )->name( 'logout' )->middleware('auth'); -
创建登录和注销函数以处理CS Socialite认证和注销,更多信息请参阅Laravel Socialite
public function login() { return Socialite::with('coloredsci')->redirect(); } public function logout() { \Auth::logout(); return \Redirect::intended('/'); } -
创建回调函数以处理重定向回调,更多信息请参阅Laravel Socialite
public function handleCallback() { $user = Socialite::driver('coloredsci')->user(); //optional $authUser = $this->updateOrCreateUser($user); Auth::login($authUser, true); return redirect('/home'); } //optional public function updateOrCreateUser($user) { return $authUser = User::updateOrCreate( ['email' => $user->email], [ 'fname' => $user->fname, 'lname' => $user->lname, 'nickname' => $user->nickname, 'avatar' => $user->avatar, 'phone' => $user->phone, 'email_verified_at' => $user->email_verified_at, ] ); }