首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用JWT (json web token)在PHP中使用Apple App Store Connect API

无法使用JWT (json web token)在PHP中使用Apple App Store Connect API
EN

Stack Overflow用户
提问于 2019-05-25 09:03:38
回答 1查看 865关注 0票数 3

我将PHP与Apple的App Store Connect API结合使用时,我的JTW得到了401/Not授权的返还。

使用php 7.1.3,我尝试了各种库和原始php (代码如下)。我非常确定头部和有效负载都是正常的,问题是使用我从苹果下载的p8私钥文件对其进行了签名。我已经四次检查了kid,iss和私钥文件。

代码语言:javascript
复制
        // Create token header as a JSON string
        $header = json_encode([
            'typ' => 'JWT',
            'alg' => 'ES256',
            'kid' => '1234567980'
        ]);

        // Create token payload as a JSON string
        $payload = json_encode([
            'iss' => '12345678-1234-1234-1234-123456789012',
            'exp' => time()+60*10, // 20 minute max allowed
            'aud' => 'appstoreconnect-v1'
        ]);

        $base64UrlHeader = rtrim(strtr(base64_encode($header), '+/', '-_'), '=');
        $base64UrlPayload = rtrim(strtr(base64_encode($payload), '+/', '-_'), '=');
        $privateKey = openssl_pkey_get_private('file://'.resource_path('/assets/AppleKey_1234567980.p8'));
        $signature = '';
        openssl_sign("$base64UrlHeader.$base64UrlPayload", $signature, $privateKey, 'sha256');

        // Encode Signature to Base64Url String
        $base64UrlSignature = rtrim(strtr(base64_encode($signature), '+/', '-_'), '=');

        // Create JWT
        $jwt = "$base64UrlHeader.$base64UrlPayload.$base64UrlSignature";

当我通过curl提交给Apple时,我得到了一个401/Not Authorized的详细信息“身份验证凭证缺失或无效”,没有更具体的信息。

有没有人用过苹果的App Store Connect API和PHP --谷歌搜索结果很少,我几乎找不到。

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 21:13:49

您可以检查此解决方案。我设法通过身份验证并从appleconnect获取数据。https://stackoverflow.com/a/57150060/860353

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56300903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档