]> BookStack Code Mirror - bookstack/blobdiff - app/Auth/Access/SocialAuthService.php
Update maintenance.php
[bookstack] / app / Auth / Access / SocialAuthService.php
index 87db1d5c6d4f1bfeadfb28c173da36e777b1b6a9..0d46b9f882d5ebe6afe1d08fb0d7b4714c9eeb74 100644 (file)
@@ -40,7 +40,7 @@ class SocialAuthService
     public function startLogIn($socialDriver)
     {
         $driver = $this->validateDriver($socialDriver);
-        return $this->socialite->driver($driver)->redirect();
+        return $this->getSocialDriver($driver)->redirect();
     }
 
     /**
@@ -52,7 +52,7 @@ class SocialAuthService
     public function startRegister($socialDriver)
     {
         $driver = $this->validateDriver($socialDriver);
-        return $this->socialite->driver($driver)->redirect();
+        return $this->getSocialDriver($driver)->redirect();
     }
 
     /**
@@ -247,4 +247,20 @@ class SocialAuthService
         session()->flash('success', trans('settings.users_social_disconnected', ['socialAccount' => title_case($socialDriver)]));
         return redirect(user()->getEditUrl());
     }
+
+    /**
+     * Provide redirect options per service for the Laravel Socialite driver
+     * @param $driverName
+     * @return \Laravel\Socialite\Contracts\Provider
+     */
+    public function getSocialDriver(string $driverName)
+    {
+        $driver = $this->socialite->driver($driverName);
+
+        if ($driverName === 'google' && config('services.google.select_account')) {
+            $driver->with(['prompt' => 'select_account']);
+        }
+
+        return $driver;
+    }
 }