定制 chenbool/jwt 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

chenbool/jwt

Composer 安装命令:

composer require chenbool/jwt

包简介

一个简单的 PHP JSON Web Tokens (JWT) 加密/解密插件

关键字:

README 文档

README

基于 PHP 的 JSON Web Token (JWT) 加密/解密库,符合 RFC 7519 标准。

特性

  • 轻量级,易于使用
  • 支持 HS256、HS384、HS512 等签名算法
  • 完整的异常处理
  • 兼容 PHP 5.3+

项目结构

jwt/
├── src/                       # 源代码
│   ├── JWT.php               # 核心类
│   ├── BeforeValidException.php    # 未生效异常
│   ├── ExpiredException.php       # 过期异常
│   └── SignatureInvalidException.php # 签名无效异常
├── composer.json               # 依赖配置
├── LICENSE                    # 许可证
└── README.md

安装

composer require chenbool/jwt

JWT 简介

JSON Web Token (JWT) 是一种开放标准 (RFC 7519),用于在各方之间安全地传输信息。JWT 可以作为 JSON 对象在各方之间安全地传输信息。

JWT 优点

  1. 服务端不需要保存传统会话信息,没有跨域传输问题,减小服务器开销
  2. JWT 构成简单,占用很少的字节,便于传输
  3. JSON 格式通用,不同语言之间都可以使用

JWT 组成

JWT 由三部分组成:

部分 说明
Header(头部) 声明类型和签名算法
Payload(载荷) 包含定义信息和自定义信息
Signature(签名) 签名验证信息

标准声明字段

字段 说明
iss JWT 签发者
sub JWT 所面向的用户
aud 接收 JWT 的一方
exp JWT 的过期时间
nbf 定义在什么时间之前不能访问
iat JWT 的签发时间
jti JWT 的唯一身份标识

使用方法

1. 基本使用

<?php
use \chenbool\JWT\JWT;

$key = "example_key";
$token = array(
    "iss" => "http://example.org", // 签发者
    "aud" => "http://example.com", // 接收方
    "iat" => 1356999524, // 签发时间
    "nbf" => time()+30, // 30秒后生效
    "exp" => time()+7200, // 2小时后过期
);

// 加密生成 Token
$jwt = JWT::encode($token, $key);

// 解密/验证 Token
$decoded = JWT::decode($jwt, $key, array('HS256'));
$decoded_array = (array) $decoded;
print_r($decoded);

2. 异常处理

<?php
try {
    JWT::$leeway = 60; // 时间偏移量
    $decoded = JWT::decode($jwt, $key, array('HS256'));
} catch(\chenbool\JWT\SignatureInvalidException $e) {  
    echo $e->getMessage(); // 签名不正确
} catch(\chenbool\JWT\BeforeValidException $e) {  
    echo $e->getMessage(); // Token 未生效
} catch(\chenbool\JWT\ExpiredException $e) {  
    echo $e->getMessage(); // Token 已过期
} catch(Exception $e) {  
    echo $e->getMessage(); // 其他错误
}

异常类说明

异常类 说明
SignatureInvalidException 签名无效异常
BeforeValidException Token 未生效异常
ExpiredException Token 过期异常

环境要求

  • PHP >= 5.3.0

相关链接

统计信息

  • 总下载量: 92
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-07-31

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固