Skip to content

Commit a5e5d2e

Browse files
committed
FIX Apple Oauth sign in problem fixed
1 parent 6728cf4 commit a5e5d2e

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

server/handlers/oauth_callback.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ import (
3030
)
3131

3232
// OAuthCallbackHandler handles the OAuth callback for various oauth providers
33+
type AppleUserInfo struct {
34+
Email string `json:"email"`
35+
Name struct {
36+
FirstName string `json:"firstName"`
37+
LastName string `json:"lastName"`
38+
} `json:"name"`
39+
}
40+
3341
func OAuthCallbackHandler() gin.HandlerFunc {
3442
return func(ctx *gin.Context) {
3543
provider := ctx.Param("oauth_provider")
@@ -80,7 +88,10 @@ func OAuthCallbackHandler() gin.HandlerFunc {
8088
case constants.AuthRecipeMethodLinkedIn:
8189
user, err = processLinkedInUserInfo(ctx, oauthCode)
8290
case constants.AuthRecipeMethodApple:
83-
user, err = processAppleUserInfo(ctx, oauthCode)
91+
user_ := AppleUserInfo{}
92+
userRaw := ctx.Request.FormValue("user")
93+
err = json.Unmarshal([]byte(userRaw), &user_)
94+
user, err = processAppleUserInfo(ctx, oauthCode, &user_)
8495
case constants.AuthRecipeMethodDiscord:
8596
user, err = processDiscordUserInfo(ctx, oauthCode)
8697
case constants.AuthRecipeMethodTwitter:
@@ -575,7 +586,7 @@ func processLinkedInUserInfo(ctx context.Context, code string) (*models.User, er
575586
return user, nil
576587
}
577588

578-
func processAppleUserInfo(ctx context.Context, code string) (*models.User, error) {
589+
func processAppleUserInfo(ctx context.Context, code string, user_ *AppleUserInfo) (*models.User, error) {
579590
var user = &models.User{}
580591
oauth2Token, err := oauth.OAuthProviders.AppleConfig.Exchange(ctx, code)
581592
if err != nil {
@@ -624,8 +635,10 @@ func processAppleUserInfo(ctx context.Context, code string) (*models.User, error
624635
user.FamilyName = &familyName
625636
}
626637
}
638+
user.GivenName = &user_.Name.FirstName
639+
user.FamilyName = &user_.Name.LastName
627640

628-
return nil, err
641+
return user, err
629642
}
630643

631644
func processDiscordUserInfo(ctx context.Context, code string) (*models.User, error) {

0 commit comments

Comments
 (0)