Как сгенерировать пару ключей для php-jwt?

Массив C char name[8] импортируется в Swift как кортеж:

(Int8, Int8, Int8, Int8, Int8, Int8, Int8, Int8)

Адрес name совпадает с адресом name[0], а Swift сохраняет макет памяти структур, импортированных из C, как , подтвержденного инженером Apple Джо Гроффом:

... Вы можете оставить структуру, определенную на C, и импортировать ее в Swift. Swift будет уважать макет C.

Как следствие, мы можем передать адрес record.name, преобразованный в указатель UInt8, в инициализатор строки:

var record = someFunctionReturningAStructRecord()

// Swift 2:
let name = withUnsafePointer(&record.name) {
    String.fromCString(UnsafePointer($0))!
}

// Swift 3:
let name = withUnsafePointer(to: &record.name) {
    $0.withMemoryRebound(to: UInt8.self, capacity: MemoryLayout.size(ofValue: record.name)) {
        String(cString: $0)
    }
}

ПРИМЕЧАНИЕ: Предполагается, что байты в name[] являются допустимой последовательностью UTF-8 с NUL-концами.

1
задан Yuri Waki 13 July 2018 в 15:54
поделиться

1 ответ

Я не знаю, в чем проблема.

Возможно, вы забыли создать (или извлечь) открытый ключ из закрытого ключа.

Но проверьте следующие шаги:

1) сгенерировать закрытый ключ:

openssl genrsa -out private.pem 2048

2) извлечь открытый ключ из закрытого ключа:

openssl rsa -in private.pem -outform PEM -pubout -out public.pem

3) и пример php-кода:

<?php
require_once('vendor/autoload.php');

use \Firebase\JWT\JWT;

$privateKey = file_get_contents('./private.pem');

$publicKey = file_get_contents('./public.pem');

$payload = [
  'data' => ['field1' => 1, 'field2' => 'string data'],
  "iss" => "http://example.org",
  "aud" => "http://example.com",
  "iat" => 1531498466,
  "eat" => 1557000000
];

$token = JWT::encode($payload, $privateKey, 'RS256');
echo "Token:\n" . print_r($token, true) . "\n";


$decoded = JWT::decode($token, $publicKey, ['RS256']);
$decoded_array = (array) $decoded;

echo "Decoded:\n" . print_r($decoded_array, true) . "\n";

0
ответ дан num8er 17 August 2018 в 12:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: