Added google select_account test
Also cleaned the function naming a little to be more descriptive of the work they do.
This commit is contained in:
parent
4be0c567cc
commit
178b5af83a
3 changed files with 19 additions and 8 deletions
|
@ -40,7 +40,7 @@ class SocialAuthService
|
|||
public function startLogIn($socialDriver)
|
||||
{
|
||||
$driver = $this->validateDriver($socialDriver);
|
||||
return $this->redirectToSocialProvider($driver)->redirect();
|
||||
return $this->getSocialDriver($driver)->redirect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,7 +52,7 @@ class SocialAuthService
|
|||
public function startRegister($socialDriver)
|
||||
{
|
||||
$driver = $this->validateDriver($socialDriver);
|
||||
return $this->redirectToSocialProvider($driver)->redirect();
|
||||
return $this->getSocialDriver($driver)->redirect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -250,15 +250,17 @@ class SocialAuthService
|
|||
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
<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>
|
||||
|
|
|
@ -148,4 +148,12 @@ class SocialAuthTest extends TestCase
|
|||
$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'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue