La forma más sencilla y recomendada de instalar la biblioteca es a través de Composer.
composer require azimolabs/apple-sign-in-php-sdk
versión PHP | Versión de la biblioteca |
---|---|
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 |
El control de versiones sigue el estándar semver.
Esta descripción supone que ya ha generado un token de identidad. Recuerde que el token es válido SÓLO por 10 minutos.
El primer paso para verificar el token de identidad es generar una clave pública. Para generar clave pública se requieren valores exponent
y modulus
. Ambas informaciones están expuestas en el punto final de la API de Apple. Esos valores difieren según el algoritmo.
El segundo paso es verificar si identityToken
proporcionado es válido según la clave pública generada. Si es así, estamos seguros de que identityToken
no tiene un formato incorrecto.
El tercer paso es la validación si el token no ha caducado. Además, vale la pena comprobar issuer
y audience
; a continuación se muestran ejemplos.
Una vez que haya clonado el repositorio, asegúrese de que las dependencias del compositor estén instaladas ejecutando 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 ' );
Si no desea copiar y pegar el código anterior, puede pegar identityToken
recién generado en tests/E2e/Auth/AppleJwtFetchingServiceTest.php:53
y ejecutar pruebas con el comando simple 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)
Le invitamos a abrir una solicitud de extracción con una solución para cualquier problema:
phpseclib/phpseclib
a la versión 3.0.7
lcobucci/jwt
a la versión 4.x
Informado en: La conversión implícita de claves a partir de cadenas está en desuso. #2 7.4.3
. Reportado en JsonException no detectada: caracteres UTF-8 con formato incorrecto 8.0.0