Add OAuthServiceProvider

This commit is contained in:
Vehikl 2025-05-01 16:55:43 -04:00
parent fa5fee50a0
commit 305374192f
3 changed files with 39 additions and 27 deletions

View File

@ -18,13 +18,6 @@ use App\Extensions\Features\JavaVersion;
use App\Extensions\Features\MinecraftEula;
use App\Extensions\Features\PIDLimit;
use App\Extensions\Features\SteamDiskSpace;
use App\Extensions\OAuth\OAuthProvider;
use App\Extensions\OAuth\Schemas\AuthentikSchema;
use App\Extensions\OAuth\Schemas\CommonSchema;
use App\Extensions\OAuth\Schemas\DiscordSchema;
use App\Extensions\OAuth\Schemas\GithubSchema;
use App\Extensions\OAuth\Schemas\GitlabSchema;
use App\Extensions\OAuth\Schemas\SteamSchema;
use App\Models;
use App\Services\Helpers\SoftwareVersionService;
use Dedoc\Scramble\Scramble;
@ -105,26 +98,6 @@ class AppServiceProvider extends ServiceProvider
Scramble::registerApi('application', ['api_path' => 'api/application', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens);
Scramble::registerApi('client', ['api_path' => 'api/client', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens);
$this->app->singleton(OAuthProvider::class, function ($app) {
$provider = new OAuthProvider();
// Default OAuth providers included with Socialite
$provider->register(new CommonSchema('facebook', null, 'tabler-brand-facebook-f', '#1877f2'));
$provider->register(new CommonSchema('x', null, 'tabler-brand-x-f', '#1da1f2'));
$provider->register(new CommonSchema('linkedin', null, 'tabler-brand-linkedin-f', '#0a66c2'));
$provider->register(new CommonSchema('google', null, 'tabler-brand-google-f', '#4285f4'));
$provider->register(new GithubSchema());
$provider->register(new GitlabSchema());
$provider->register(new CommonSchema('bitbucket', null, 'tabler-brand-bitbucket-f', '#205081'));
$provider->register(new CommonSchema('slack', null, 'tabler-brand-slack', '#6ecadc'));
// Additional OAuth providers from socialiteproviders.com
$provider->register(new AuthentikSchema());
$provider->register(new DiscordSchema());
$provider->register(new SteamSchema());
return $provider;
});
// Default Captcha provider
TurnstileProvider::register($app);

View File

@ -0,0 +1,38 @@
<?php
namespace App\Providers\Extensions;
use App\Extensions\OAuth\OAuthProvider;
use App\Extensions\OAuth\Schemas\AuthentikSchema;
use App\Extensions\OAuth\Schemas\CommonSchema;
use App\Extensions\OAuth\Schemas\DiscordSchema;
use App\Extensions\OAuth\Schemas\GithubSchema;
use App\Extensions\OAuth\Schemas\GitlabSchema;
use App\Extensions\OAuth\Schemas\SteamSchema;
use Illuminate\Support\ServiceProvider;
class OAuthServiceProvider extends ServiceProvider
{
public function register(): void
{
$this->app->singleton(OAuthProvider::class, function ($app) {
$provider = new OAuthProvider();
// Default OAuth providers included with Socialite
$provider->register(new CommonSchema('facebook', null, 'tabler-brand-facebook-f', '#1877f2'));
$provider->register(new CommonSchema('x', null, 'tabler-brand-x-f', '#1da1f2'));
$provider->register(new CommonSchema('linkedin', null, 'tabler-brand-linkedin-f', '#0a66c2'));
$provider->register(new CommonSchema('google', null, 'tabler-brand-google-f', '#4285f4'));
$provider->register(new GithubSchema());
$provider->register(new GitlabSchema());
$provider->register(new CommonSchema('bitbucket', null, 'tabler-brand-bitbucket-f', '#205081'));
$provider->register(new CommonSchema('slack', null, 'tabler-brand-slack', '#6ecadc'));
// Additional OAuth providers from socialiteproviders.com
$provider->register(new AuthentikSchema());
$provider->register(new DiscordSchema());
$provider->register(new SteamSchema());
return $provider;
});
}
}

View File

@ -8,6 +8,7 @@ return [
App\Providers\Filament\AdminPanelProvider::class,
App\Providers\Filament\AppPanelProvider::class,
App\Providers\Filament\ServerPanelProvider::class,
App\Providers\Extensions\OAuthServiceProvider::class,
App\Providers\RouteServiceProvider::class,
SocialiteProviders\Manager\ServiceProvider::class,
];