J'essaie d'implémenter Connectez-vous avec Apple avec une application iOS et un backend. Le but est le suivant:
authorizationCode
authorizationCode
avec un autre appel au serveur d'Apple.Ici, je suis confus. Pour effectuer cet appel, le backend doit fournir un tas de paramètres:
URL
https://appleid.Apple.com/auth/token
Paramètres de requête
client_id = com.mycompany.appname
client_secret = ...
code = ... // `authorizationCode` from the signin in the iOS app
grant_type = authorization_code
J'ai généré un JWT
pour le client_secret
:
Propriétés JWT
header:
kid: <key id, created on Apple Dev Portal>
claims:
iss: <team id>
iat: <current timestamp>
exp: <current timestamp + 180 days>
aud: "https://appleid.Apple.com"
sub: "com.mycompany.appname"
Hier, j'ai créé deux clés pour deux applications (A et B) sur le portail de développement, je l'ai utilisé pour générer des secrets et aujourd'hui l'application A a fonctionné et j'ai une réponse positive:
Réponse positive
{
"access_token" : "a1e64327924yt49f5937d643e25a48b81.0.mxwz.GN9TjJIJ5_4dR6WjbZoVNw",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "rca76d9ebta644fde9edba269c61eeb41.0.mxwz.sMDUlXnnLLUOu2z0WlABoQ",
"id_token" : "eyJraWQiOiJBSURPUEsxIcccYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiZGUudHJ1ZmZscy5hcHBsZS1zaWduaW4tdGVzdCIsImV4cCI6MTU2NzcwMDI0MiwiaWF0IjoxNTY3Njk5NjQyLCJzdWaaaiIwMDA3NjkuYWY3NDdjMTlmZGRmNDJhNjhhYmFkZjhlNTQ1MmY3NjAuMjIwNSIsImF0X2hhc2giOiJrVThQTkZOUHYxS0RGUEtMT2hIY213IiwiYXV0aF90aW1lIjoxNTY3Njk5NjM5fQ.g3JD2MDGZ6wiVS9VMHpj24ER0XqJlunatmqpE7sRarMkhMHMTk7j8gty1lpqVBC6Z8L5CZuewdzLuJ5Odrd3_c1cX7gparTQE4jCyvyTACCPKHXReTC2hGRIEnAogcxv6HDWrtZgb3ENhoGhZW778d70DUdd-e4KKiAvzLOse-endHr51PaR1gv-cHPcwnm3NQZ144I-xhpU5TD9VQJ9IgLQvZGZ8fi8SOcu6rrk5ZOr0mpt0NbJNGYgH5-8iuSxo18QBWZDXoEGNsa4kS5GDkq5Cekxt7JsJFc_L1Np94giXhpbYHqhcO1pZSGFrJVaMvMMftZfuS_T3sh2yCqkcA"
}
B, cependant, ne fonctionne toujours pas. Aujourd'hui, j'ai révoqué la clé de A et j'en ai créé une nouvelle et maintenant elle ne fonctionne plus avec la nouvelle, mais toujours avec l'ancienne, même si je l'ai supprimée sur le portail de développement. Je suis tellement confus.
Erreur de réponse:
{
"error": "invalid_client"
}
Je me demande si Apple a besoin d'indexation de temps ou quelque chose comme ça. Je veux juste comprendre comment cela fonctionne.
Votre ID d'application natif est votre ID de bundle préfixé avec votre ID d'équipe, séparé par une virgule.
"L'ID d'application Apple est une chaîne en deux parties utilisée pour identifier une ou plusieurs applications. Plus précisément, l'ID d'application Apple est votre ID d'équipe et ID de bundle joints) avec un point, pour exemple : 1A234H7ABC.com.votredomaine.VotreApp. "
J'ai cependant le même problème pour que cela fonctionne.