oidc: distinguish between username and preferred_username claims (#789)

Co-authored-by: Graham Steffaniak <42989099+gtsteffaniak@users.noreply.github.com>
This commit is contained in:
Jakub P.andGraham Steffaniak authored and GitHub committed 2025-06-16 19:37:05 -05:00
1 parent c581ea760e
commit 1f1d1c5b44
1 file changed
+8
+8
View File
@@ -22,6 +22,7 @@ import (
type userInfo struct {
Name string `json:"name"`
PreferredUsername string `json:"preferred_username"`
Username string `json:"username"`
Email string `json:"email"`
Sub string `json:"sub"`
Phone string `json:"phone_number"`
@@ -143,6 +144,11 @@ func oidcCallbackHandler(w http.ResponseWriter, r *http.Request, d *requestConte
loginUsername = userdata.Email
}
case "username":
if userdata.Username != "" {
claimsFromIDToken = true
loginUsername = userdata.Username
}
case "preferred_username":
if userdata.PreferredUsername != "" {
claimsFromIDToken = true
loginUsername = userdata.PreferredUsername
@@ -181,6 +187,8 @@ func oidcCallbackHandler(w http.ResponseWriter, r *http.Request, d *requestConte
case "email":
loginUsername = userdata.Email
case "username":
loginUsername = userdata.Username
case "preferred_username":
loginUsername = userdata.PreferredUsername
case "phone":
loginUsername = userdata.Phone