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);
相关文章
|
8月前
|
JSON 算法 安全
Django JWT验证
Django JWT验证
123 0
|
10月前
|
Java
SpringBoot 整合JWT实现基于自定义注解的-登录请求验证拦截(保姆级教学,附:源码)2
SpringBoot 整合JWT实现基于自定义注解的-登录请求验证拦截
150 0
|
18天前
|
JSON 安全 关系型数据库
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
|
10月前
|
前端开发 JavaScript 机器人
用PHP实现了一个极验验证功能,如何做?具体代码如何写?
极验验证是一种防机器人的验证机制,可以通过图像识别等方式来判断用户是否为真实用户。
100 1
|
18天前
|
安全 Linux 测试技术
PHP环境配置和验证
PHP环境配置和验证
38 0
|
18天前
|
JavaScript 前端开发 数据库
vue与jwt验证
vue与jwt验证
32 0
|
18天前
|
JSON 算法 前端开发
gin框架JWT验证实践(原理介绍,代码实践)
gin框架JWT验证实践(原理介绍,代码实践)
61 0
|
10月前
|
安全 PHP
PHP - Laravel 表单验证(验证规则与使用 $this->validate()、Validator::make()、Requests)
PHP - Laravel 表单验证(验证规则与使用 $this->validate()、Validator::make()、Requests)
172 0
|
6月前
|
PHP 数据库
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
|
7月前
|
存储 安全 前端开发
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
这篇文章讨论了认证和授权的概念,并探讨了设计权限认证框架的原则。它还比较了Cookie和Session的区别,并探讨了处理分布式部署时的Session保存问题。此外,文章还介绍了CSRF攻击及其防范方法,以及OAuth2.0、JWT令牌和SSO的概念。最后,文章提出了设计开放授权平台时需要考虑的因素。
105 0
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计