feat(oauth): set redirect uri as optional and add default value (#5760)

This commit is contained in:
Arnaud Dezandee
2025-05-20 14:35:39 +02:00
committed by GitHub
parent 7a0954fa77
commit 587a927b8b
3 changed files with 8 additions and 4 deletions

View File

@@ -25,11 +25,11 @@ class OauthSetting extends Model
{ {
switch ($this->provider) { switch ($this->provider) {
case 'azure': case 'azure':
return filled($this->client_id) && filled($this->client_secret) && filled($this->redirect_uri) && filled($this->tenant); return filled($this->client_id) && filled($this->client_secret) && filled($this->tenant);
case 'authentik': case 'authentik':
return filled($this->client_id) && filled($this->client_secret) && filled($this->redirect_uri) && filled($this->base_url); return filled($this->client_id) && filled($this->client_secret) && filled($this->base_url);
default: default:
return filled($this->client_id) && filled($this->client_secret) && filled($this->redirect_uri); return filled($this->client_id) && filled($this->client_secret);
} }
} }
} }

View File

@@ -7,6 +7,10 @@ function get_socialite_provider(string $provider)
{ {
$oauth_setting = OauthSetting::firstWhere('provider', $provider); $oauth_setting = OauthSetting::firstWhere('provider', $provider);
if (! filled($oauth_setting->redirect_uri)) {
$oauth_setting->update(['redirect_uri' => route('auth.callback', $provider)]);
}
if ($provider === 'azure') { if ($provider === 'azure') {
$azure_config = new \SocialiteProviders\Manager\Config( $azure_config = new \SocialiteProviders\Manager\Config(
$oauth_setting->client_id, $oauth_setting->client_id,

View File

@@ -26,7 +26,7 @@
label="Client ID" /> label="Client ID" />
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.client_secret" <x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.client_secret"
type="password" label="Client Secret" autocomplete="new-password" /> type="password" label="Client Secret" autocomplete="new-password" />
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.redirect_uri" <x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.redirect_uri" placeholder="{{ route('auth.callback', $oauth_setting->provider) }}"
label="Redirect URI" /> label="Redirect URI" />
@if ($oauth_setting->provider == 'azure') @if ($oauth_setting->provider == 'azure')
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.tenant" <x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.tenant"