Kvist
06/12/2023, 2:15 PMerror merging into access token payload
We're doing some basic stuff I would say (shortened):
userMetaData, err := usermetadata.GetUserMetadata(updateMetadataModel.UserId)
for k, v := range updateMetadataModel.UserMetadata {
userMetaData[k] = v
}
userMetaData, err = usermetadata.UpdateUserMetadata(updateMetadataModel.UserId, userMetaData)
checkCsrfToken := false
sessionContainer, err := session.GetSession(c.Request, c.Writer, &sessmodels.VerifySessionOptions{
AntiCsrfCheck: &checkCsrfToken,
})
mergeTokenMetadata := make(map[string]interface{})
for k, v := range updateMetadataModel.UserMetadata {
if !isValidKey(k) {
continue
}
mergeTokenMetadata[getClaimKey(k)] = v
}
firstName, firstNameExists := mergeTokenMetadata[infrastructure.FirstName]
lastName, lastNameExists := mergeTokenMetadata[infrastructure.LastName]
if firstNameExists && lastNameExists {
mergeTokenMetadata[infrastructure.Name] = fmt.Sprintf("%s %s", firstName, lastName)
} else if firstNameExists {
mergeTokenMetadata[infrastructure.Name] = firstName
} else if userMetaData != nil {
mergeTokenMetadata[infrastructure.Name] = sessionContainer.GetAccessTokenPayload()[infrastructure.Name]
}
err = sessionContainer.MergeIntoAccessTokenPayload(mergeTokenMetadata)