localzet/lwt 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

localzet/lwt

最新稳定版本:v1.2.5

Composer 安装命令:

composer require localzet/lwt

包简介

Localzet LWT is a library for working with Localzet Web Tokens, which are based on JWT (JSON Web Tokens). It provides functionality for creating, verifying, and handling tokens using modern technologies and standards.

README 文档

README

Скачивания Коммиты Версия Версия PHP Лицензия

LWT - Localzet Web Tokens (JWT-based)

Класс LWT предоставляет методы для кодирования и декодирования LWT-токенов. Он использует алгоритмы шифрования AES и RSA для шифрования данных в токене.

Использование

Кодирование LWT-токена

Чтобы кодировать LWT-токен, используйте метод encode() класса LWT. Этот метод принимает данные, закрытый ключ и алгоритм шифрования (по умолчанию ES512) в качестве аргументов.

Если закрытый ключ и алгоритм шифрования не указаны, используются значения, определенные в классе.

$data = ['username' => 'localzet', 'email' => 'creator@localzet.com'];
$tokenPrivateKey = '...'; // Закрытый ключ для шифрования токена (рекомендую ECDSA)
$tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512)

$encodedToken = LWT::encode($data, $tokenPrivateKey, $tokenEncryption);

Декодирование LWT-токена

Чтобы декодировать LWT-токен и получить расшифрованные данные, используйте метод decode() класса LWT. Этот метод принимает закодированный токен, публичный ключ и алгоритм шифрования в качестве аргументов.

Если публичный ключ и алгоритм шифрования не указаны, используются значения, определенные в классе.

$encodedToken = '...'; // Закодированный LWT-токен
$tokenPublicKey = '...'; // Публичный ключ для шифрования токена (рекомендую ECDSA)
$tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512)

$decodedData = LWT::decode($encodedToken, $tokenPublicKey, $tokenEncryption);

Кодирование данных в LWT-токене

Чтобы закодировать данные в LWT-токене и дополнительно обезопасить их, используйте методы encode() и decode() класса LWT с дополнительными аргументами. Эти методы принимают дополнительные ключи для шифрования данных в полезной нагрузке комбинацией ассиметричного (RSA) и симметричного (AES-256-CBC) алгоритмов.

Если дополнительные ключи для шифрования данных не указаны, данные загружаются в полезную нагрузку в неизменном виде.

$encodedToken = '...'; // Закодированный LWT-токен
$tokenPublicKey = '...'; // Публичный ключ для шифрования токена (рекомендую ECDSA)
$tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512)

$decodedData = LWT::decode($encodedToken, $tokenPublicKey, $tokenEncryption);

Настройка

Класс LWT имеет несколько статических свойств и констант, которые можно настроить для изменения поведения кодирования и декодирования токенов.

Настройка JWT-совместимого алгоритма шифрования LWT-токена

Чтобы изменить алгоритм шифрования для сигнатуры, измените значение константы LWT_ENCRYPTION.

Возможные значения:
HMAC-based: HS256, HS384, HS512
RSA-based: RS256, RS384, RS512
ECDSA-based: ES256, ES384, ES512

// Изменение алгоритма шифрования для сигнатуры LWT-токена (рекомендую ES512)
LWT::LWT_ENCRYPTION = 'ES512';

Настройка закрытого и публичного ключей LWT-токена

Чтобы изменить закрытый или публичный ключи для кодирования или декодирования LWT-токена, измените значения статических свойств $LWT_PRIVATE_KEY и $LWT_PUBLIC_KEY соответственно.

// Изменение закрытого ключа для кодирования LWT-токена
LWT::$LWT_PRIVATE_KEY = '...'; // Закрытый ключ в формате PEM (рекомендую ECDSA)

// Изменение публичного ключа для декодирования LWT-токена
LWT::$LWT_PUBLIC_KEY = '...'; // Публичный ключ в формате PEM (рекомендую ECDSA)

Настройка закрытого и публичного ключей данных

Чтобы изменить закрытый или публичный ключи для шифрования или расшифровки данных, измените значения статических свойств $DATA_PRIVATE_KEY и $DATA_PUBLIC_KEY соответственно.

// Изменение закрытого ключа для шифрования данных
LWT::$DATA_PRIVATE_KEY = '...'; // Закрытый ключ RSA

// Изменение публичного ключа для расшифровки данных
LWT::$DATA_PUBLIC_KEY = '...'; // Публичный ключ RSA

统计信息

  • 总下载量: 99
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: AGPL-3.0-or-later
  • 更新时间: 2023-08-25