Der empfohlene und einfachste Weg zur Installation der Bibliothek ist Composer.
composer require azimolabs/apple-sign-in-php-sdk
PHP-Version | Bibliotheksversion |
---|---|
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 |
Die Versionierung folgt dem Semver-Standard.
Bei dieser Beschreibung wird davon ausgegangen, dass Sie bereits ein IdentityToken generiert haben. Denken Sie daran, dass der Token NUR 10 Minuten lang gültig ist.
Der erste Schritt zur Überprüfung des Identitätstokens besteht in der Generierung eines öffentlichen Schlüssels. Zur Generierung des öffentlichen Schlüssels sind exponent
und modulus
erforderlich. Beide Informationen werden im Apple API-Endpunkt verfügbar gemacht. Diese Werte unterscheiden sich je nach Algorithmus.
Der zweite Schritt ist die Überprüfung, ob das bereitgestellte identityToken
für den generierten öffentlichen Schlüssel gültig ist. Wenn ja, sind wir sicher, dass das identityToken
nicht fehlerhaft war.
Der dritte Schritt ist die Validierung, ob das Token nicht abgelaufen ist. Darüber hinaus lohnt es sich, issuer
und audience
zu überprüfen. Beispiele finden Sie unten.
Nachdem Sie das Repository geklont haben, stellen Sie sicher, dass Composer-Abhängigkeiten installiert sind, indem Sie composer install -o
ausführen.
$ 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 ' );
Wenn Sie den obigen Code nicht kopieren und einfügen möchten, können Sie frisch generiertes identityToken
in tests/E2e/Auth/AppleJwtFetchingServiceTest.php:53
einfügen und Tests mit dem einfachen Befehl php vendor/bin/phpunit tests/E2e
ausführen.
$ 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)
Sie können gerne eine Pull-Anfrage mit einer Lösung für jedes Problem öffnen:
phpseclib/phpseclib
auf Version 3.0.7
lcobucci/jwt
auf Version 4.x
Gemeldet in: Die implizite Konvertierung von Schlüsseln aus Zeichenfolgen ist veraltet. #2 7.4.3
kompatibel. Gemeldet in Nicht erfasste JsonException: Ungültige UTF-8-Zeichen 8.0.0
kompatibel