paragonie/php-jwt-guard

v0.3.0 2021-08-11 21:27 UTC

This package is auto-updated.

Last update: 2024-09-14 06:24:34 UTC


README

Build Status Latest Stable Version Latest Unstable Version License Downloads

保护您的代码免受firebase/php-jwt中的问题351的影响。

安装

首先,使用Composer安装此库

composer require paragonie/php-jwt-guard

然后,在您的PHP命名空间导入中,交换命名空间

- use Firebase\JWT\JWT;
+ use ParagonIE\PhpJwtGuard\JWT;

您将不再向JWT提供数组或ArrayAccess对象。相反,您需要使用提供的KeyRing类。

<?php
use ParagonIE\PhpJwtGuard\KeyRing;
use ParagonIE\PhpJwtGuard\JWT;

// Setup keyring:
$keyring = (new KeyRing())
    ->withHS256('key-id-foo', 'raw-key-data-goes-here')
    ->withHS384('key-id-bar', 'raw-key-data-goes-here-too')
    // ...
    ->withPS384('key-id-xyzzy', 'raw-key-data-goes-here-too')
    ->withPS512('key-id-thud', 'raw-key-data-goes-here-too');

// Pass it to JWT Dcode:
JWT::decode($jwt, $keyring, array($allowedAlgs));

使用KeyRing类

KeyRing->with($alg, $keyId, $rawKeyData)

参数

  1. string $alg - 此密钥预期的算法
  2. string $keyId - 映射到此密钥的kid头部
  3. string $rawKeyData - 实际密钥材料。对于非对称密钥,这通常是PEM编码的。

返回KeyRing对象。可链式调用。

KeyRing->count()

返回一个整数。

KeyRing->partition($alg)

参数

  1. string $alg - 此密钥预期的算法

返回一个新的KeyRing对象,其中包含所有支持密钥的子集。