Firebase аутентификация — PHP-JWT не декодирует

Я использую библиотеку Android ‘io.jsonwebtoken: jjwt: 0.7.0’ для создания токена, который правильно создает JWT, который я проверил. Моя проблема, когда я использую библиотеку php firebase / php-jwt для декодирования. обе библиотеки установлены на HS256 и клавиша «тестирование». Что я здесь не так делаю?

String compactJws = Jwts.builder()
.claim("devId", getDeviceId())
.signWith(SignatureAlgorithm.HS256, "testing")
.compact();
logger.i(compactJws);

регистрируется как eyJhbGciOiJIUzI1NiJ9.eyJkZXZJZCI6Ijc4MGQ1YWRlMzMwNGVhZmEifQ.XIKxG1xZbuMD8FRIAJ735LNbhodAj1a7pMZ6o3IF0ig

https://jwt.io/

введите описание изображения здесь

use \Firebase\JWT\JWT;
$jwt = "eyJhbGciOiJIUzI1NiJ9.eyJkZXZJZCI6Ijc4MGQ1YWRlMzMwNGVhZmEifQ.XIKxG1xZbuMD8FRIAJ735LNbhodAj1a7pMZ6o3IF0ig";
$key = "testing";
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);

возвращает Uncaught исключение «Firebase \ JWT \ SignatureInvalidException» с сообщением «Ошибка проверки подписи»

0

Решение

Ответ был: я пропустил заголовок «typ»: «JWT» ​​и мне пришлось декодировать ключ

Map<String, Object> header = new HashMap<>();
header.put("typ", Header.JWT_TYPE);
.setHeader(header)

PHP SIDE

 $decoded_array = (array) JWT::decode($jwt, base64_decode($key), array('HS256'));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]