多次与 Laravel Socialite 进行 Google 宣誓

问题描述 投票:0回答:1

现在我有一个将 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?
php laravel google-oauth laravel-socialite
1个回答
0
投票

我已经使用具有自定义配置的提供程序实现了一个解决方案。

  1. 在 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);
        }
    );
    
  2. 将您的密钥添加到 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', ], ],

  3. 在控制器和路由文件中使用您的提供程序:

Socialite::driver('multidomain-google')->redirect()

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.