IOSアプリとバックエンドでAppleでサインインを実装しようとしています。目標はこれです:
authorizationCode
を渡しますauthorizationCode
を検証する必要があります。ここで私は混乱しています。この呼び出しを行うには、バックエンドが一連のパラメーターを提供する必要があります。
[〜#〜] url [〜#〜]
https://appleid.Apple.com/auth/token
クエリパラメータ
client_id = com.mycompany.appname
client_secret = ...
code = ... // `authorizationCode` from the signin in the iOS app
grant_type = authorization_code
client_secret
のJWT
を生成しました:
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"
昨日、Dev Portalで2つのアプリ(AとB)の2つのキーを作成し、それを使用してシークレットを生成しました。今日はアプリAが機能し、肯定的な応答が得られました。
肯定的な応答
{
"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はまだ機能しません。今日、私はAのキーを取り消して新しいキーを作成しましたが、Devポータルで削除したにもかかわらず、新しいキーでは機能しなくなりましたが、古いキーでは機能しません。私は困惑している。
応答エラー:
{
"error": "invalid_client"
}
Appleはインデックス作成などに時間がかかるのでしょうか。これがどのように機能するのかを理解したいだけです。
ネイティブAPP IDは、コンマで区切られた、チームIDが前に付いたバンドルIDです。
「AppleアプリIDは、1つ以上のアプリを識別するために使用される2つの部分からなる文字列です。具体的には、AppleアプリIDは、チームIDとバンドルIDを結合したものです example のピリオド付き:1A234H7ABC.com.yourdomain.YourApp。」
しかし、これを機能させるために同じ問題が発生しています。