الطريقة الموصى بها والأسهل لتثبيت المكتبة هي من خلال Composer.
composer require azimolabs/apple-sign-in-php-sdk
نسخة PHP | نسخة المكتبة |
---|---|
5.x | NOT SUPPORTED |
> 7.0 <= 7.3 | 1.4.x |
>= 7.4 < 8.0 | 1.5.x |
>= 8.0 & ^7.4 | 2.0.x |
>= 8.1 | 3.0.x |
الإصدار يتبع معيار semver.
يفترض هذا الوصف أنك قمت بالفعل بإنشاء الهوية. تذكر أن الرمز صالح لمدة 10 دقائق فقط.
الخطوة الأولى للتحقق من رمز الهوية هي إنشاء مفتاح عام. لإنشاء exponent
المفتاح العام وقيم modulus
مطلوبة. يتم عرض كلا المعلومات في نقطة نهاية Apple API. تختلف هذه القيم اعتمادًا على الخوارزمية.
الخطوة الثانية هي التحقق إذا كان identityToken
المقدم صالحًا مقابل المفتاح العام الذي تم إنشاؤه. إذا كان الأمر كذلك، فنحن على يقين من أن identityToken
لم تكن مشوهة.
الخطوة الثالثة هي التحقق من صحة الرمز المميز إذا لم تنته صلاحيته. بالإضافة إلى ذلك، من المفيد التحقق issuer
audience
، الأمثلة موضحة أدناه.
بمجرد قيامك باستنساخ المستودع، تأكد من تثبيت تبعيات الملحن باستخدام composer install -o
.
$ appleJwtFetchingService = new Auth Service AppleJwtFetchingService (
new Auth Jwt JwtParser ( new Lcobucci JWT Token Parser ( new Lcobucci JWT Encoding JoseEncoder ())),
new Auth Jwt JwtVerifier (
new Api AppleApiClient (
new GuzzleHttp Client (
[
' base_uri ' => ' https://appleid.apple.com ' ,
' timeout ' => 5 ,
' connect_timeout ' => 5 ,
]
),
new Api Factory ResponseFactory ()
),
new Lcobucci JWT Validation Validator (),
new Lcobucci JWT Signer Rsa Sha256 ()
),
new Auth Jwt JwtValidator (
new Lcobucci JWT Validation Validator (),
[
new Lcobucci JWT Validation Constraint IssuedBy ( ' https://appleid.apple.com ' ),
new Lcobucci JWT Validation Constraint PermittedFor ( ' com.c.azimo.stage ' ),
]
),
new Auth Factory AppleJwtStructFactory ()
);
$ appleJwtFetchingService -> getJwtPayload ( ' your.identity.token ' );
إذا كنت لا ترغب في نسخ ولصق الكود أعلاه، فيمكنك لصق identityToken
التي تم إنشاؤها حديثًا في tests/E2e/Auth/AppleJwtFetchingServiceTest.php:53
وإجراء الاختبارات باستخدام أمر بسيط php vendor/bin/phpunit tests/E2e
.
$ php vendor/bin/phpunit tests/E2e
PHPUnit 9.2.5 by Sebastian Bergmann and contributors.
Random seed: 1594414420
. 1 / 1 (100%)
Time: 00:00.962, Memory: 8.00 MB
OK (1 test, 1 assertion)
نرحب بفتح طلب سحب مع إصلاح أي مشكلة:
phpseclib/phpseclib
إلى الإصدار 3.0.7
lcobucci/jwt
إلى الإصدار 4.x
تم الإبلاغ عنه في: تم إهمال التحويل الضمني للمفاتيح من السلاسل. #2 7.4.3
. تم الإبلاغ عنه في Uncaught JsonException: أحرف UTF-8 مشوهة 8.0.0