一个用于简化JWT(JSON Web Token)认证使用的PHP库。

v1.0.0 2022-09-01 13:20 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:13 UTC


README

Release Version

实现JSON Web Token的PHP包。

使用简单

require 'vendor/autoload.php';
use Devmatheusguerra\JWT\JWT;

$jwt = new JWT();
$data = new stdClass();
$data->name = 'Devmatheusguerra';
$data->email = 'teste@gmail.com';

$token = $jwt->generate($data);

1. 初始配置

需要创建两个全局常量。例如,您可以在config.php文件中定义它们。

2. generate() 方法

有一个非必填参数,对应于需要添加到JWT payload 中的自定义数据。如需了解有关 claim names 的更多信息,请点击此处 [链接]

默认情况下已声明一些claim names

  • iss: 将接收主机或本地主机的地址。
  • ip: 将接收请求者的IP地址。
  • iat: 使用函数调用的当前时间戳,即 UNIX TIMESTAMP
  • exp: 默认情况下,令牌将在调用后24小时内过期。

注意:这些可以被覆盖。

参数

返回值

返回一个对应于 生成的tokenstring

3. verify() 方法

有一个必填参数,对应于通过客户端请求接收到的令牌。

参数

返回值

返回一个 stdClass。如果参数 ipfalse,将检查令牌的签名是否有效以及令牌是否未过期。否则,请求也必须来自生成令牌的相同来源。

可能的返回值。

ip != $_SERVER['REMOTE_ADDR']
message => Invalid IP 
status => 403
response => false
signature != token_signature
message => Invalid signature'
status => 403
response => false
exp > now()
message => Token expired
status => 403
response => false
以上都不是
message => Token valid
status => 200
response => true

4. getClaims() 方法

有一个必填参数,对应于通过客户端请求接收到的令牌。

参数

返回值

返回一个包含 token payloadstdClass

5. 常量

为了优化时间,一些HTTP状态码被引入到类中。

使用示例。

$tokenValido = $jwt->verify($token_recebido);
if($tokenValido)
	http_response_code(JWT::CREATED);
else
	http_response_code(JWT::FORBIDDEN);