Log error & Check OpenID config to ease SSO setup - See #325

This commit is contained in:
Bubka 2024-06-10 16:14:31 +02:00
parent ef11bef2bd
commit d1c2a05b87

View File

@ -8,6 +8,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
use Laravel\Socialite\Facades\Socialite;
@ -20,10 +21,16 @@ class SocialiteController extends Controller
*/
public function redirect(Request $request, string $driver)
{
// Generic SSO provider definition check
if (! config('services.' . $driver . '.client_id') || ! config('services.' . $driver . '.client_secret')) {
return redirect('/error?err=sso_bad_provider_setup');
}
// OpenID SSO provider definition check
if ($driver == 'openid' && (! config('services.openid.token_url') || ! config('services.openid.authorize_url') || ! config('services.openid.userinfo_url'))) {
return redirect('/error?err=sso_bad_provider_setup');
}
return Settings::get('enableSso')
? Socialite::driver($driver)->redirect()
: redirect('/error?err=sso_disabled');
@ -39,6 +46,8 @@ public function callback(Request $request, string $driver)
try {
$socialiteUser = Socialite::driver($driver)->user();
} catch (\Exception $e) {
Log::error($e);
return redirect('/error?err=sso_failed');
}