From: Vincent Vanwaelscappel Date: Fri, 8 Oct 2021 15:52:26 +0000 (+0200) Subject: wip #4765 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=8c45affb999de31d7b3e5711ec410813cbaceeb5;p=cubist_socialite.git wip #4765 @1 --- diff --git a/src/CubistSocialiteAuthServiceProvider.php b/src/CubistSocialiteAuthServiceProvider.php index 4375705..a3ffa69 100644 --- a/src/CubistSocialiteAuthServiceProvider.php +++ b/src/CubistSocialiteAuthServiceProvider.php @@ -19,14 +19,8 @@ class CubistSocialiteAuthServiceProvider extends AuthServiceProvider $this->registerPolicies(); Auth::viaRequest('socialitegoogle', function (Request $request) { - dd($request); - $socialiteUser = Socialite::driver('google')->user(); - if ($socialiteUser) { - $userClass = config('auth.providers.users.model'); - $instance = new $userClass(); - $instance->id = $socialiteUser->getId(); - $instance->email = $socialiteUser->getEmail(); - } + $user = User::fromProvider('google'); + dd($user); }); } } \ No newline at end of file diff --git a/src/Http/Controllers/SocialiteController.php b/src/Http/Controllers/SocialiteController.php index 42b0251..0e850ba 100644 --- a/src/Http/Controllers/SocialiteController.php +++ b/src/Http/Controllers/SocialiteController.php @@ -20,7 +20,7 @@ class SocialiteController extends Controller public function redirect() { $provider = request()->provider; - if (in_array($provider, $this->providers)) { + if (in_array($provider, $this->providers, true)) { return Socialite::driver($provider)->redirect(); } abort(403); @@ -30,21 +30,10 @@ class SocialiteController extends Controller public function callback() { $provider = request()->provider; - if (in_array($provider, $this->providers)) { - $socialiteUser = Socialite::driver('google')->user(); - if ($socialiteUser) { - $userClass = config('auth.providers.users.model'); - /** @var User $instance */ - $instance = new $userClass(); - $instance->setId($socialiteUser->getId()); - $instance->setEmail($socialiteUser->getEmail()); - $instance->setAvatar($socialiteUser->getAvatar()); - $instance->setName($socialiteUser->getName()); - $instance->setNickname($socialiteUser->getNickname()); - dd($instance); - Auth::setUser($instance); - dd(auth()->user()); - } + if (in_array($provider, $this->providers, true)) { + $user = User::fromProvider($provider); + Auth::setUser($user); + dd('1', auth()->user()); } } } \ No newline at end of file diff --git a/src/User.php b/src/User.php index 914817c..e90b717 100644 --- a/src/User.php +++ b/src/User.php @@ -3,6 +3,7 @@ namespace Cubist\Socialite; use Illuminate\Contracts\Auth\Authenticatable; +use Laravel\Socialite\Facades\Socialite; use Mpyw\NullAuth\NullAuthenticatable; class User implements Authenticatable @@ -94,4 +95,22 @@ class User implements Authenticatable { $this->email = $email; } + + public static function fromProvider($provider) + { + $socialiteUser = Socialite::driver($provider)->user(); + if ($socialiteUser) { + $userClass = config('auth.providers.users.model'); + /** @var User $instance */ + $instance = new $userClass(); + $instance->setId($socialiteUser->getId()); + $instance->setEmail($socialiteUser->getEmail()); + $instance->setAvatar($socialiteUser->getAvatar()); + $instance->setName($socialiteUser->getName()); + $instance->setNickname($socialiteUser->getNickname()); + return $instance; + + } + return null; + } } \ No newline at end of file