定制 gozoro/jwt 二次开发

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

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

gozoro/jwt

最新稳定版本:v1.0.0

Composer 安装命令:

composer require gozoro/jwt

包简介

A simple PHP class to encode and decode JSON Web Tokens (JWT), conforming to RFC 7519.

README 文档

README

A simple PHP class to encode and decode JSON Web Tokens (JWT), conforming to RFC 7519. Supported algorithms: HS256, HS512, HS384, RS256, RS384, RS512.

Installation

	composer require gozoro/jwt

Usage

Encode

$key     = 'my_secret_key';
$tokenId = '12345';
$beginTs = time();
$endTs   = $beginTs + 3600;
$issuer  = 'oauth.example.com';
$subject = 'subject',
$audience= 'audience',

try
{
	$jwt = new \gozoro\jwt\JWT('HS256');
	$jwt->setTokenId($tokenId);
	$jwt->setNotBeforeTime($beginTs);
	$jwt->setExpirationTime($endTs);
	$jwt->setIssuedAtTime($beginTs);
	$jwt->setIssuer($issuer);
	$jwt->setSubject($subject);
	$jwt->setAudience(audience);

	print $jwtstr = \gozoro\jwt\JWT::encode($jwt, $key);
}
catch(\gozoro\jwt\JwtEncodeException $e)
{
	print $e->getMessage();
}

or

try
{
	$payload = [
		'jti' => $tokenId,
		'nbf' => $beginTs,
		'exp' => $endTs,
		'iat' => $beginTs,
		'iss' => $issuer,
		'sub' => $subject,
		'aud' => $audience,
	];

	$jwt = new \gozoro\jwt\JWT('HS256');
	$jwt->setPayload($payload);

	print $jwtstr = \gozoro\jwt\JWT::encode($jwt, $key);
}
catch(\gozoro\jwt\JwtEncodeException $e)
{
	print $e->getMessage();
}

Decode

try
{
	$jwt = \gozoro\jwt\JWT::decode($jwtstr);

	print $jwt->getTokenId();
	print $jwt->getNotBeforeTimeFormatted('Y-m-d H:i:s');
	print $jwt->getExpirationTimeFormatted('Y-m-d H:i:s');
	print $jwt->getIssuedAtTimeFormatted('Y-m-d H:i:s');
	print $jwt->getIssuer();
	print $jwt->getAudience();

	print_r($jwt->getHeader());
	print_r($jwt->getPayload());
	print $jwt->getSignature();
}
catch(\gozoro\jwt\JwtDecodeException $e)
{
	print $e->getMessage();
}

Validate

try
{
	$key    = 'my_secret_key';
	$leeway = 300;

	if($jwt->validateHeader())
		print 'Header: OK';

	if($jwt->validateSignature($key))
		print 'Signature: OK';

	if($jwt->validateNotBeforeTime($leeway))
		print 'Not Before Time: OK';

	if($jwt->validateExpirationTime($leeway))
		print 'Expiration Time: OK';

	if($jwt->validateTime($leeway)) // $jwt->validateNotBeforeTime($leeway) and $jwt->validateExpirationTime($leeway)
		print 'Time: OK';
}
catch(\gozoro\jwt\JwtValidateException $e)
{
	print $e->getMessage();
}

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-06-27