Hallo Tijn Kruis WWijk
De fout invalid_grant bij PKCE-uitwisselingen wordt vrijwel altijd veroorzaakt door een mismatch tussen de berekende code_challenge en de meegestuurde code_verifier, of doordat de autorisatiecode al is verbruikt of verlopen. Volgens de RFC 7636-specificatie moet de code_challenge exact overeenkomen met BASE64URL-ENCODE(SHA256(ASCII(code_verifier))), waarbij er geen padding zoals =-tekens mag worden gebruikt en URL-onveilige tekens correct moeten zijn vervangen. U kunt dit verifiëren door een netwerkproxy zoals Fiddler of Charles tussen te schakelen, de oorspronkelijke code_verifier en code_challenge uit het autorisatieverzoek te isoleren, en de SHA256-hash lokaal handmatig te hashen en te controleren.
Controleer daarnaast in uw mobiele clientcode of de code_verifier tijdelijk niet per ongeluk opnieuw wordt gegenereerd tussen het autorisatieverzoek en de token-aanroep via het token-eindpunt. Mocht deze uitleg u helpen bij het traceren en oplossen van de hashing-fout, markeer het antwoord dan gerust als geaccepteerd.
Tracy Le.