mirror of
https://github.com/coollabsio/coolify.git
synced 2026-09-28 02:06:37 -04:00
fix(auth): store OIDC raw claims as arrays
Handle missing provider payloads by persisting an empty array and add coverage for multi-audience OIDC azp validation.
This commit is contained in:
@@ -66,7 +66,9 @@ class OauthLoginService
|
||||
throw new HttpException(403, 'OIDC provider did not verify the email address');
|
||||
}
|
||||
|
||||
return DB::transaction(function () use ($oauthUser, $oauthSetting, $email, $issuer, $subject, $emailVerified) {
|
||||
$rawClaims = is_array($oauthUser->user ?? null) ? $oauthUser->user : [];
|
||||
|
||||
return DB::transaction(function () use ($oauthUser, $oauthSetting, $email, $issuer, $subject, $emailVerified, $rawClaims) {
|
||||
$identity = OauthIdentity::where([
|
||||
'provider' => 'oidc',
|
||||
'issuer' => $issuer,
|
||||
@@ -76,7 +78,7 @@ class OauthLoginService
|
||||
if ($identity) {
|
||||
$identity->update([
|
||||
'email' => $email,
|
||||
'raw_claims' => $oauthUser->user,
|
||||
'raw_claims' => $rawClaims,
|
||||
'last_login_at' => now(),
|
||||
]);
|
||||
|
||||
@@ -107,7 +109,7 @@ class OauthLoginService
|
||||
'issuer' => $issuer,
|
||||
'provider_user_id' => $subject,
|
||||
'email' => $email,
|
||||
'raw_claims' => $oauthUser->user,
|
||||
'raw_claims' => $rawClaims,
|
||||
'last_login_at' => now(),
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user