Hey,
any updates on this? Is it still happening for your app? Since the release of iOS17 some weeks ago our monitoring shows also a lot of failing requests for initial product loadings for iOS17 only - none of the current iOS updates has fixed this. I already opened a Ticket for this.
https://feedbackassistant.apple.com/feedback/13232149
Post
Replies
Boosts
Views
Activity
Hey,i can confirm that we at Yazio have the same Issue and our Support gets a lot of Messages regarding this bug. We have not changed the Sign in with Apple code since a while and have the exact same feeling that this started on all Watch Series when WatchOS 6.1.3 was released.The support team is doing the same and telling the customers to unpair and pair their watch.BestSebastian
Get the ASAuthorizationAppleIDCredential from the delegate// ASAuthorizationControllerDelegate
publicfunc authorizationController(controller: ASAuthorizationController,
didCompleteWithAuthorization authorization: ASAuthorization){
...
}Get the String encoded JWT from the credential:String(data: credential.identityToken, encoding: .utf8)Go to https://jwt.io and decode the JWT// Header
{
"kid": "eXaunmL",
"alg": "RS256"
}
// Payload
{
"iss": "https://appleid.apple.com",
"aud": "***",
"exp": 1581598403,
"iat": 1581597803,
"sub": "***",
"c_hash": "***",
"email": "***",
"email_verified": "true",
"auth_time": 1581597803
}In the header you can see the "kid".This kid will match with one of the kid from https://appleid.apple.com/auth/keys{
"keys": [
{...},
{
"kty": "RSA",
"kid": "eXaunmL",
"use": "sig",
"alg": "RS256",
"n": ...,
"e": "AQAB"
},
{...}
]
}At some point you are sending the identityToken to your backend. Your backend has to check the header to get the correct kid to get the correct key from the auth/keys. So you have to fix the issue on the backend.
The identityToken of ASAuthorizationAppleIDCredential contains in the header the "kid" you need to match with the list I guess.