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