fix: id token parsing

This commit is contained in:
Lakhan Samani 2022-06-14 11:38:04 +05:30
parent 341d4fbae5
commit f4691fca1f

View File

@ -17,6 +17,7 @@ import (
"github.com/authorizerdev/authorizer/server/constants" "github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/cookie" "github.com/authorizerdev/authorizer/server/cookie"
"github.com/authorizerdev/authorizer/server/crypto"
"github.com/authorizerdev/authorizer/server/db" "github.com/authorizerdev/authorizer/server/db"
"github.com/authorizerdev/authorizer/server/db/models" "github.com/authorizerdev/authorizer/server/db/models"
"github.com/authorizerdev/authorizer/server/memorystore" "github.com/authorizerdev/authorizer/server/memorystore"
@ -472,14 +473,23 @@ func processAppleUserInfo(code string) (models.User, error) {
fmt.Println("=> rawIDToken", rawIDToken) fmt.Println("=> rawIDToken", rawIDToken)
// Parse and verify ID Token payload. tokenSplit := strings.Split(rawIDToken, ".")
claims, err := token.ParseJWTToken(rawIDToken) claimsData := tokenSplit[1]
decodedClaimsData, err := crypto.DecryptB64(claimsData)
if err != nil { if err != nil {
log.Debug("Failed to parse apple id token: ", err) log.Debug("Failed to decrypt claims data: ", err)
return user, err return user, fmt.Errorf("failed to decrypt claims data: %s", err.Error())
} }
fmt.Println("claims:", claims) fmt.Println("=> decoded claims data", decodedClaimsData)
email := claims["email"].(string)
claims := map[string]string{}
err = json.Unmarshal([]byte(decodedClaimsData), &claims)
if err != nil {
log.Debug("Failed to unmarshal claims data: ", err)
return user, fmt.Errorf("failed to unmarshal claims data: %s", err.Error())
}
fmt.Println("=> claims map:", claims)
email := claims["email"]
user.Email = email user.Email = email
return user, err return user, err