Merge pull request #1191 from trheyi/main

Add Yao custom fields to ID token claims
This commit is contained in:
Max 2025-10-13 11:30:09 +08:00 committed by GitHub
commit 597c6a58a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -566,6 +566,42 @@ func (s *Service) SignIDToken(clientID, scope string, expiresIn int, userdata *t
claims["updated_at"] = *userdata.UpdatedAt claims["updated_at"] = *userdata.UpdatedAt
} }
// Add Yao custom fields with namespace
if userdata.YaoTenantID != "" {
claims["yao:tenant_id"] = userdata.YaoTenantID
}
if userdata.YaoTeamID != "" {
claims["yao:team_id"] = userdata.YaoTeamID
}
if userdata.YaoIsOwner != nil {
claims["yao:is_owner"] = *userdata.YaoIsOwner
}
// Add Yao team info if present
if userdata.YaoTeam != nil {
teamMap := make(map[string]interface{})
if userdata.YaoTeam.TeamID != "" {
teamMap["team_id"] = userdata.YaoTeam.TeamID
}
if userdata.YaoTeam.Logo != "" {
teamMap["logo"] = userdata.YaoTeam.Logo
}
if userdata.YaoTeam.Name != "" {
teamMap["name"] = userdata.YaoTeam.Name
}
if userdata.YaoTeam.OwnerID != "" {
teamMap["owner_id"] = userdata.YaoTeam.OwnerID
}
if userdata.YaoTeam.Description != "" {
teamMap["description"] = userdata.YaoTeam.Description
}
if userdata.YaoTeam.UpdatedAt != nil {
teamMap["updated_at"] = *userdata.YaoTeam.UpdatedAt
}
if len(teamMap) > 0 {
claims["yao:team"] = teamMap
}
}
// Add scope if provided (useful for determining which claims to include) // Add scope if provided (useful for determining which claims to include)
if scope != "" { if scope != "" {
claims["scope"] = scope claims["scope"] = scope