我的编程空间,编程开发者的网络收藏夹
学习永远不晚

jwt介绍和PHP的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

jwt介绍和PHP的使用

适用于分布式单点登录(SSO)

流程

客户端输入账号密码登录;

服务端判断登录信息,用户登录成功返回客户端token;

客户端存储token,每个请求都需要传递token到服务端;

服务端验证token的有效期,返回对应的信息;

构成

分为三部分

头部(header);2、载荷(payload, 数据信息);3、签证(signature).;

使用

生成token 

        $header = ['typ' => 'JWT', 'alg' => 'HS256'];//头部

        $jwt_header = base64_encode(json_encode($header));

        $time = time()+3600;//过期时间

        $payload = ['username' => '张三', 'id' => '123', 'sub' => $time];//载荷

        $jwt_payload = base64_encode(json_encode($payload));

        $secret = 'abcdef';//设置的密钥

        $jwt_sign = md5($jwt_header.$jwt_payload.$secret);

        $token = $jwt_header.".".$jwt_payload.".".$jwt_sign;

验证token

        $token_arr = explode('.',$token);
        if(count($token_arr) != 3){
            die('长度不对快跑');
        }
        $jwt_header = json_decode(base64_decode($token_arr[0]), true);

        if($jwt_header['typ'] != 'JWT'){
            die('数据不对快跑');
        }
        $jwt_payload = json_decode(base64_decode($token_arr[1]), true);
        if($jwt_payload['sub'] < time()){
            die('过期快跑');
        }
        $secret = 'abcdef';//设置的密钥
        $jwt_sign = md5($token_arr[0].$token_arr[1].$secret);
        if($token_arr[2] != $jwt_sign){
            die('加密不对快跑');
        }

来源地址:https://blog.csdn.net/shaoyangzhuanyong/article/details/127490658

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

jwt介绍和PHP的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python JWT 介绍和使用详解

1. JWT 介绍 jwt( JSON Web Tokens ),是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目 jwt认证流程:在项目开发中,一般
2022-06-02

单点登录的三种方式和JWT的介绍与使用

这篇文章主要说明了单点登录的三种方式和JWT的介绍与使用,加深自己的印象以及帮助的诸位小伙伴儿们,需要的朋友可以参考下
2023-03-24

SpringBoot整合JWT的介绍以及用法

本篇内容主要讲解“SpringBoot整合JWT的介绍以及用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot整合JWT的介绍以及用法”吧!目录1.JWT2.JWT登录执行流程
2023-06-20

SVN介绍和使用

文章目录 SVN的介绍SVN是什么作用 安装包下载SVN的使用检出提交显示日志更新 patch的使用创建使用 SVN的介绍 SVN是什么 SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分
2023-08-19

Go中Sync.Cond的介绍和使用

本篇内容介绍了“Go中Sync.Cond的介绍和使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 程序中的通信方式GO语言中有句名言:
2023-06-15

PHP——thinkphp5的详解介绍与使用

ThinkPHP5是一款基于PHP语言的轻量级开源框架,它具有简单、高效、灵活、安全等特点,非常适合快速开发Web应用程序。一、ThinkPHP5的特点1. 简单易用:ThinkPHP5采用简洁的代码风格和设计模式,使开发者能够更快速地上手
2023-08-25

DedeCms autoindex和itemindex使用介绍

复制代码代码如下: 2022-06-12

Redis API 介绍和使用(上)

预备知识     1.全局命令     1.1 查看所有键         keys  *  命令将所有的键输出。该命令会遍历所有键,所以它的时间复杂度是 O(n),当 Redis 保存了大量的键时,线上环境禁止使用。     1.2 键总数        
Redis API 介绍和使用(上)
2015-06-06

C++List链表的介绍和使用

list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代,这篇文章主要介绍了C++List链表的介绍和使用,需要的朋友可以参考下
2023-03-07

BeanUtils工具类的介绍和使用

BeanUtils是Apache Commons BeanUtils库中的一个工具类,用于简化JavaBean之间的属性复制。它提供了一组静态方法,可以实现源对象的属性值复制到目标对象中,而不需要手动编写大量的复制代码。使用BeanUtil
2023-09-21

Android Retrofit的简单介绍和使用

Retrofit与okhttp共同出自于Square公司,retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了,其主要作者是Android大神Ja
2022-06-06

Java Jwt库的简介及使用方法

这期内容当中小编将会给大家带来有关Java Jwt库的简介及使用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JWT介绍JWT概念JWT , 全写JSON Web Token, 是开放的行业标准RFC
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录