diff --git a/config/services.php b/config/services.php index 6a90eb830..6f05de504 100644 --- a/config/services.php +++ b/config/services.php @@ -35,4 +35,26 @@ return [ ], ], + 'google' => [ + 'client_id' => env('GOOGLE_CLIENT_ID'), + 'client_secret' => env('GOOGLE_CLIENT_SECRET'), + 'redirect' => env('GOOGLE_REDIRECT_URI', '/oauth/callback/google'), + 'enabled' => env('ENABLE_GOOGLE_LOGIN', false), + ], + + 'facebook' => [ + 'client_id' => env('FACEBOOK_CLIENT_ID'), + 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), + 'redirect' => env('FACEBOOK_REDIRECT_URI', '/oauth/callback/facebook'), + 'enabled' => env('ENABLE_FACEBOOK_LOGIN', false), + ], + + 'apple' => [ + 'client_id' => env('APPLE_CLIENT_ID'), + 'client_secret' => env('APPLE_CLIENT_SECRET'), + 'redirect' => env('APPLE_REDIRECT_URI', '/oauth/callback/apple'), + 'stateless' => true, + 'enabled' => env('ENABLE_APPLE_LOGIN', false), + ], + ]; diff --git a/database/migrations/2026_03_03_094518_create_socialite_users_table.php b/database/migrations/2026_03_03_094518_create_socialite_users_table.php new file mode 100644 index 000000000..da3e4125a --- /dev/null +++ b/database/migrations/2026_03_03_094518_create_socialite_users_table.php @@ -0,0 +1,30 @@ +id(); + + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->string('provider'); + $table->string('provider_id'); + + $table->timestamps(); + + $table->unique([ + 'provider', + 'provider_id', + ]); + }); + } + + public function down() + { + Schema::dropIfExists('socialite_users'); + } +}; diff --git a/database/settings/2026_03_03_150000_add_social_login_settings.php b/database/settings/2026_03_03_150000_add_social_login_settings.php new file mode 100644 index 000000000..9351f3a61 --- /dev/null +++ b/database/settings/2026_03_03_150000_add_social_login_settings.php @@ -0,0 +1,21 @@ +migrator->add('general.enable_google_login', false); + $this->migrator->add('general.google_client_id', null); + $this->migrator->add('general.google_client_secret', null); + + $this->migrator->add('general.enable_facebook_login', false); + $this->migrator->add('general.facebook_client_id', null); + $this->migrator->add('general.facebook_client_secret', null); + + $this->migrator->add('general.enable_apple_login', false); + $this->migrator->add('general.apple_client_id', null); + $this->migrator->add('general.apple_client_secret', null); + } +};