现在我有一个将 Google 身份验证与 Socialite 结合使用的应用程序。 一切都按预期进行,但我想做的是看看是否有办法允许多个域登录。
现在我在 services.php 下有这个
'google' => [
'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT_URI'),
],
来电
public function redirect(){
return Socialite::driver('google')
->scopes(['https://apps-apis.google.com/a/feeds/groups/', \Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY])
-
>stateless()->redirect();
}
想知道社交名流是否可以接受/允许不同的
GOOGLE_CLIENT_ID
&
GOOGLE_CLIENT_SECRET?
我已经使用具有自定义配置的提供程序实现了一个解决方案。
在 AppServiceProvider::boot() 方法中注册您的提供程序:
$socialite = $this->app->make('Laravel\Socialite\Contracts\Factory'); $socialite->扩展( '多域谷歌', 函数($app)使用($socialite){ $config = $app['config']['services.multidomain-google.'。 。 str_replace('.', '-', request()->getHost())];
return $socialite->buildProvider(GoogleProvider::class, $config);
}
);
将您的密钥添加到 services.php 配置文件中:
'多域谷歌' => [ 'www-example-com' => [ 'client_id' => '12245678-1215.apps.googleusercontent.com', 'client_secret' => 'GOCSPX-98765432', '重定向' => 'https://www.example.com/auth/google-redirect', 'www-example2-com' => [ 'client_id' => '12345678-1235.apps.googleusercontent.com', 'client_secret' => 'GOCSPX-12345678', '重定向' => 'https://www.example2.com/auth/google-redirect', ], ],
在控制器和路由文件中使用您的提供程序:
Socialite::driver('multidomain-google')->redirect()