0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-06-18 02:53:46 +02:00
gitea/services
Lunny Xiao 6f5def0f37 fix(auth): ignore stale OIDC external login links to organizations (#37875)
This fixes an OIDC sign-in edge case where a stale `external_login_user`
record can still point to an organization or a deleted user.

In that situation, Gitea may keep resolving the external login to the
wrong account during sign-in. For affected instances, this matches the
behavior reported in #36439 and #37812, where a user signing in with
OIDC/Entra ID could appear as an organization, or hit a 404 after that
organization was removed.

- validate the user resolved from `external_login_user` during
OAuth2/OIDC login
- ignore stale links when the linked user no longer exists
- ignore stale links when the linked user is not an individual user
- remove the stale external login row so the sign-in flow can relink the
external account to the correct user

- Fixes #37812
- Related to #36439

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Claude (Opus 4.8) <noreply@anthropic.com>
2026-06-16 19:21:00 -07:00
..
2026-04-08 01:17:05 +08:00
2026-04-01 11:26:52 +08:00
2026-06-12 21:28:13 +08:00