Skip to content

Commit f4691fc

Browse files
committed
fix: id token parsing
1 parent 341d4fb commit f4691fc

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

server/handlers/oauth_callback.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717

1818
"github.com/authorizerdev/authorizer/server/constants"
1919
"github.com/authorizerdev/authorizer/server/cookie"
20+
"github.com/authorizerdev/authorizer/server/crypto"
2021
"github.com/authorizerdev/authorizer/server/db"
2122
"github.com/authorizerdev/authorizer/server/db/models"
2223
"github.com/authorizerdev/authorizer/server/memorystore"
@@ -472,14 +473,23 @@ func processAppleUserInfo(code string) (models.User, error) {
472473

473474
fmt.Println("=> rawIDToken", rawIDToken)
474475

475-
// Parse and verify ID Token payload.
476-
claims, err := token.ParseJWTToken(rawIDToken)
476+
tokenSplit := strings.Split(rawIDToken, ".")
477+
claimsData := tokenSplit[1]
478+
decodedClaimsData, err := crypto.DecryptB64(claimsData)
477479
if err != nil {
478-
log.Debug("Failed to parse apple id token: ", err)
479-
return user, err
480+
log.Debug("Failed to decrypt claims data: ", err)
481+
return user, fmt.Errorf("failed to decrypt claims data: %s", err.Error())
482+
}
483+
fmt.Println("=> decoded claims data", decodedClaimsData)
484+
485+
claims := map[string]string{}
486+
err = json.Unmarshal([]byte(decodedClaimsData), &claims)
487+
if err != nil {
488+
log.Debug("Failed to unmarshal claims data: ", err)
489+
return user, fmt.Errorf("failed to unmarshal claims data: %s", err.Error())
480490
}
481-
fmt.Println("claims:", claims)
482-
email := claims["email"].(string)
491+
fmt.Println("=> claims map:", claims)
492+
email := claims["email"]
483493
user.Email = email
484494

485495
return user, err

0 commit comments

Comments
 (0)