]> _ Git - cubist_socialite.git/commitdiff
wip #4765 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 8 Oct 2021 15:52:26 +0000 (17:52 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 8 Oct 2021 15:52:26 +0000 (17:52 +0200)
src/CubistSocialiteAuthServiceProvider.php
src/Http/Controllers/SocialiteController.php
src/User.php

index 4375705988de2f2c067715eb684bfec297af5641..a3ffa695a6b421e9e4e9415600a1aa0619160ba9 100644 (file)
@@ -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
index 42b025129fa3b4cae474dac8b3c6b813aeaf52ad..0e850ba5d6627b14d97743ad0f2cded7b9586e72 100644 (file)
@@ -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
index 914817c7d790d6941928b6ef1565650c478dbfed..e90b71716d10753a23d51b30af6ed8afecb8c40a 100644 (file)
@@ -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