[#7603] updated the Discord AuthUser.Name field to use global_name
Co-authored-by: Hans <hi@hans0805.me>
This commit is contained in:
@@ -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
|
## v0.36.8
|
||||||
|
|
||||||
- Fixed OAuth2 client secret reset when serializing a cached collection model.
|
- Fixed OAuth2 client secret reset when serializing a cached collection model.
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
|
|||||||
|
|
||||||
extracted := struct {
|
extracted := struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
|
GlobalName string `json:"global_name"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Discriminator string `json:"discriminator"`
|
Discriminator string `json:"discriminator"`
|
||||||
Avatar string `json:"avatar"`
|
Avatar string `json:"avatar"`
|
||||||
@@ -64,16 +65,26 @@ func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
|
|||||||
return nil, err
|
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
|
// https://discord.com/developers/docs/reference#image-formatting
|
||||||
avatarURL := fmt.Sprintf("https://cdn.discordapp.com/avatars/%s/%s.png", extracted.Id, extracted.Avatar)
|
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
|
name := extracted.GlobalName
|
||||||
username := fmt.Sprintf("%s#%s", extracted.Username, extracted.Discriminator)
|
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{
|
user := &AuthUser{
|
||||||
Id: extracted.Id,
|
Id: extracted.Id,
|
||||||
Name: username,
|
Name: name,
|
||||||
Username: extracted.Username,
|
Username: extracted.Username,
|
||||||
AvatarURL: avatarURL,
|
AvatarURL: avatarURL,
|
||||||
RawUser: rawUser,
|
RawUser: rawUser,
|
||||||
|
|||||||
Reference in New Issue
Block a user