[#7603] updated the Discord AuthUser.Name field to use global_name

Co-authored-by: Hans <hi@hans0805.me>
This commit is contained in:
Gani Georgiev
2026-03-30 07:33:29 +03:00
parent 864bac6dc4
commit a2b14bcb93
2 changed files with 20 additions and 4 deletions

View File

@@ -1,3 +1,8 @@
## v0.36.9 (WIP)
- Updated the Discord `AuthUser.Name` field to use `global_name` ([#7603](https://github.com/pocketbase/pocketbase/pull/7603); thanks @HansHans135).
## v0.36.8
- Fixed OAuth2 client secret reset when serializing a cached collection model.

View File

@@ -54,6 +54,7 @@ func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
extracted := struct {
Id string `json:"id"`
GlobalName string `json:"global_name"`
Username string `json:"username"`
Discriminator string `json:"discriminator"`
Avatar string `json:"avatar"`
@@ -64,16 +65,26 @@ func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
return nil, err
}
// Build a full avatar URL using the avatar hash provided in the API response
// build a full avatar URL using the avatar hash provided in the API response
// https://discord.com/developers/docs/reference#image-formatting
avatarURL := fmt.Sprintf("https://cdn.discordapp.com/avatars/%s/%s.png", extracted.Id, extracted.Avatar)
// Concatenate the user's username and discriminator into a single username string
username := fmt.Sprintf("%s#%s", extracted.Username, extracted.Discriminator)
name := extracted.GlobalName
if name == "" {
// fallback to username+discriminator
//
// Note: Discord migrated to unique usernames without discriminators.
// Legacy accounts still have a non-zero discriminator (e.g. "1234").
// See https://support.discord.com/hc/en-us/articles/12620128861463-New-Usernames-Display-Names.
name = extracted.Username
if extracted.Discriminator != "" && extracted.Discriminator != "0" {
name += "#" + extracted.Discriminator
}
}
user := &AuthUser{
Id: extracted.Id,
Name: username,
Name: name,
Username: extracted.Username,
AvatarURL: avatarURL,
RawUser: rawUser,