public function startLogIn($socialDriver)
{
$driver = $this->validateDriver($socialDriver);
- return $this->redirectToSocialProvider($driver)->redirect();
+ return $this->getSocialDriver($driver)->redirect();
}
/**
public function startRegister($socialDriver)
{
$driver = $this->validateDriver($socialDriver);
- return $this->redirectToSocialProvider($driver)->redirect();
+ return $this->getSocialDriver($driver)->redirect();
}
/**
/**
* Provide redirect options per service for the Laravel Socialite driver
- * @param $driver
+ * @param $driverName
+ * @return \Laravel\Socialite\Contracts\Provider
*/
- public function redirectToSocialProvider($driver)
+ public function getSocialDriver(string $driverName)
{
- if ($driver == 'google' && config('services.google.select_account'))
- {
- return $this->socialite->driver($driver)->with(['prompt' => 'select_account']);
+ $driver = $this->socialite->driver($driverName);
+
+ if ($driverName === 'google' && config('services.google.select_account')) {
+ $driver->with(['prompt' => 'select_account']);
}
- return $this->socialite->driver($driver);
+ return $driver;
}
}
<env name="GOOGLE_APP_SECRET" value="aaaaaaaaaaaaaa"/>
<env name="GOOGLE_AUTO_REGISTER" value=""/>
<env name="GOOGLE_AUTO_CONFIRM_EMAIL" value=""/>
+ <env name="GOOGLE_SELECT_ACCOUNT" value=""/>
<env name="APP_URL" value="http://bookstack.dev"/>
<env name="DEBUGBAR_ENABLED" value="false"/>
</php>
$this->assertDatabaseHas('social_accounts', ['user_id' => $user->id]);
}
+ public function test_google_select_account_option_changes_redirect_url()
+ {
+ config()->set('services.google.select_account', 'true');
+
+ $resp = $this->get('/login/service/google');
+ $this->assertContains('prompt=select_account', $resp->headers->get('Location'));
+ }
+
}