Неверная подпись JWT - PHP - PullRequest
       8

Неверная подпись JWT - PHP

0 голосов
/ 14 января 2019

Я использую библиотеку "Lcobucci" для создания JWT. Во время выполнения кода произошла ошибка неверной подписи. Я много искал учебник, до сих пор не понял ошибку. Вот код:

require "vendor/autoload.php"; // Autoload.php is generated by Composer

use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Hmac\Sha256;

$GLOBALS['ApiKey'] = '6e845674-96b3-4e85-b843-418ceae4491f';
$GLOBALS['ApiId'] = '5c38c665ff626b1fe01a3987';
$GLOBALS['OrgUnitId'] = '5c33bddeff626b1fe015635e';

$_SESSION['TransactionId'] = '123456';

$_SESSION['Order'] = array(
    "OrderDetails" => array(
        "OrderNumber" =>  "100000425",
        "Amount" => '1500',
        "CurrencyCode" => '840'
        )
);

function generateJwt($orderTransactionId, $orderObj){

    $currentTime = time();
    $expireTime = 3600; 

    $token = (new Builder())->setIssuer($GLOBALS['ApiId']) 
                ->setId($orderTransactionId, true) 
                ->setIssuedAt($currentTime)
                ->setExpiration($currentTime + $expireTime)
                ->set('OrgUnitId', $GLOBALS['OrgUnitId'])
                ->set('Payload', $_SESSION['Order']) 
                ->set('ObjectifyPayload', true)
                ->sign(new Sha256(), $GLOBALS['ApiKey']) 
                ->getToken();   
    return $token; // The JWT String
}

echo generateJwt($_SESSION['TransactionId'], $_SESSION['Order']);

Я ссылался на токен в jwt.io Любая помощь, пожалуйста? Смотрите скриншот. JWT Refrence

1 Ответ

0 голосов
/ 30 января 2019

Ваш закрытый ключ должен быть в формате pkcs1. См. Этот тестовый код для примера:

https://github.com/lcobucci/jwt/blob/master/test/unit/Signer/RsaTest.php

или если вы пытаетесь выполнить hs256, ваш ключ содержит тире. Возьми их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...