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);
相关文章
|
6月前
|
JSON 算法 安全
Nest.js JWT 验证授权管理
Nest.js JWT 验证授权管理
155 3
Nest.js JWT 验证授权管理
|
26天前
|
JSON 安全 算法
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
2月前
|
存储 中间件 API
ThinkPHP 集成 jwt 技术 token 验证
本文介绍了在ThinkPHP框架中集成JWT技术进行token验证的流程,包括安装JWT扩展、创建Token服务类、编写中间件进行Token校验、配置路由中间件以及测试Token验证的步骤和代码示例。
ThinkPHP 集成 jwt 技术 token 验证
|
6月前
|
安全 Java 应用服务中间件
Shiro + JWT 进行登录验证
Shiro + JWT 进行登录验证
55 2
|
3月前
【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
|
3月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
47 0
|
3月前
|
API
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
|
3月前
|
JSON Java API
【Azure Developer】如何验证 Azure AD的JWT Token (JSON Web 令牌)?
【Azure Developer】如何验证 Azure AD的JWT Token (JSON Web 令牌)?
|
3月前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token