一个用于简化JWT(JSON Web Token)认证使用的PHP库。
v1.0.0
2022-09-01 13:20 UTC
README
实现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小时内过期。
注意:这些可以被覆盖。
参数
返回值
返回一个对应于 生成的token 的 string。
3. verify() 方法
有一个必填参数,对应于通过客户端请求接收到的令牌。
参数
返回值
返回一个 stdClass。如果参数 ip 为 false,将检查令牌的签名是否有效以及令牌是否未过期。否则,请求也必须来自生成令牌的相同来源。
可能的返回值。
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 payload 的 stdClass。
5. 常量
为了优化时间,一些HTTP状态码被引入到类中。
使用示例。
$tokenValido = $jwt->verify($token_recebido); if($tokenValido) http_response_code(JWT::CREATED); else http_response_code(JWT::FORBIDDEN);