siu-toba/jwt-util

此包最新版本(v1.0.5)无可用许可证信息。

一个小型库,用于使用Web Tokens JSON(JWT)进行认证

v1.0.5 2023-04-17 20:28 UTC

This package is auto-updated.

Last update: 2024-09-17 23:26:28 UTC


README

此库封装了JWT类型令牌(https://jwt.net.cn/)的操纵。允许使用对称密钥和/或非对称密钥生成和验证令牌。

当前需要php-jwt库。

安装

使用composer管理依赖项并下载jwt-util

composer require siu-toba/jwt-util

生成令牌

要生成令牌或进行encode操作,必须选择加密类型,无论是对称还是非对称,并定义一个密钥和一个算法。

    $keySimetrica = 'test';

    $datos = ['uid'=>'id-usuario', 'name'=>'usuario de prueba'];

    $simetricEncoder = new SimetricEncoder(Util::ALG_HS512, $keySimetrica, $datos);

    $jwt->setEncoder($simetricEncoder);

    $token = $jwt->encode();

    echo $token;
    // eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1aWQiOjEyMzQ1NiwibmFtZSI6Im15IHVzZXIgbmFtZSJ9.RZcDtMfrzoVEISsVYsVz11-rZ87rWqS7RHYctQnpZKDt8m8YsVZysh9Hu0OpDnPT-8JjHbWS_Xkz6Am11UAulQ

验证令牌

同样,从令牌和密钥出发,可以验证或进行decode操作,以确定是否为有效令牌,从而提取相关信息。

    $keySimetrica = 'test';

    $simetricDecoder = new SimetricDecoder(Util::ALG_HS512, $keySimetrica);

    $this->jwt->setDecoder($simetricDecoder);

    // con el token generado previamente...
    $data = $this->jwt->decode($token);

    echo $data->uid;     // 'id-usuario'

    echo $data->name;    // 'usuario de prueba'

选项

支持以下算法和方法

要使用非对称方法生成令牌,需要公钥/私钥。以下是可以生成一些测试密钥的方式

    openssl genrsa 512 > server.key
    openssl rsa -pubout < server.key > server.pem

注意:这会生成RS256密钥,要生成RS512密钥,请使用genrsa 1024