PHP:firebase/php-jwt生成jwt和验证

简介: PHP:firebase/php-jwt生成jwt和验证

安装

composer require firebase/php-jwt

文档:https://github.com/firebase/php-jwt


<?php
require __DIR__ . '/../vendor/autoload.php';
use Firebase\JWT\JWT;
use Firebase\JWT\ExpiredException;
$key = "example_key";
$time = time();
$data = [
  'id'=>  1,
  'username'=> 'Tom'
];
$payload = array(
    "iat" => $time, // 签发时间
    "ext" => $time, // 过期时间
    "data"=> $data  // 携带数据
);
$jwt = JWT::encode($payload, $key);
echo $jwt;
// 正常的jwt
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
//[iat] => 1622605592
//[ext] => 1622605592
//[data] => stdClass Object
//    (
//        [id] => 1
//        [username] => Tom
//    )
// 异常捕获
$jwt = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MjI2MDUzNDUsImV4dCI6MTYyMjYwNTM0NSwiZGF0YSI6eyJpZCI6MSwidXNlcm5hbWUiOiJUb20ifX0.Jgp1JBPngj0lgmFpMty7C76mWwtFQVoLvQtGsN5LcpgstdClass Object';
try {
    $decoded = JWT::decode($jwt, $key, array('HS256'));
}catch (ExpiredException $e){
    echo 'token已过期';
}catch (\Exception $e){
    echo 'token无效';
}
print_r($decoded);
相关文章
|
4月前
|
JSON 算法 安全
Nest.js JWT 验证授权管理
Nest.js JWT 验证授权管理
114 3
Nest.js JWT 验证授权管理
|
4月前
|
安全 Java 应用服务中间件
Shiro + JWT 进行登录验证
Shiro + JWT 进行登录验证
46 2
|
24天前
【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
|
18天前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
29 0
|
24天前
|
API
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
|
25天前
|
JSON Java API
【Azure Developer】如何验证 Azure AD的JWT Token (JSON Web 令牌)?
【Azure Developer】如何验证 Azure AD的JWT Token (JSON Web 令牌)?
|
25天前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
1月前
|
Java Spring
JWT token验证后,通过 ThreadLocal 进行传值
JWT token验证后,通过 ThreadLocal 进行传值
14 0
|
3月前
|
JSON 算法 Go
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
|
11月前
|
JSON 算法 Java
Spring boot框架 JWT实现用户账户密码登录验证
Spring boot框架 JWT实现用户账户密码登录验证