Cara yang disarankan dan termudah untuk menginstal perpustakaan adalah melalui Komposer.
composer require azimolabs/apple-sign-in-php-sdk
| versi PHP | Versi perpustakaan |
|---|---|
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 |
Pembuatan versi mengikuti standar semver.
Deskripsi ini mengasumsikan bahwa Anda telah membuat IdentityToken . Ingatlah bahwa token HANYA berlaku selama 10 menit.
Langkah pertama untuk memverifikasi token identitas adalah membuat kunci publik. Untuk menghasilkan nilai exponent dan modulus kunci publik diperlukan. Kedua informasi tersebut diekspos di titik akhir Apple API. Nilai-nilai tersebut berbeda tergantung pada algoritmanya.
Langkah kedua adalah verifikasi apakah identityToken yang diberikan valid terhadap kunci publik yang dihasilkan. Jika demikian, kami yakin identityToken tidak salah format.
Langkah ketiga adalah validasi jika token belum kadaluwarsa. Selain itu, ada baiknya memeriksa issuer dan audience , contohnya ditunjukkan di bawah.
Setelah Anda mengkloning repositori, pastikan dependensi komposer diinstal dengan menjalankan 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 ' ); Jika Anda tidak ingin menyalin-menempelkan kode di atas, Anda dapat menempelkan identityToken yang baru dibuat di tests/E2e/Auth/AppleJwtFetchingServiceTest.php:53 dan menjalankan tes dengan perintah sederhana 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)Anda dipersilakan untuk membuka permintaan penarikan dengan perbaikan untuk masalah apa pun:
phpseclib/phpseclib ke versi 3.0.7 lcobucci/jwt ke versi 4.x . Dilaporkan dalam: Konversi implisit kunci dari string tidak digunakan lagi. #2 7.4.3 . Dilaporkan dalam JsonException yang Tidak Tertangkap: Karakter UTF-8 salah 8.0.0