热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPJWT简易使用

今天突然就想用一下jwt生成一下token,那么说干就干首先我先下载

今天突然就想用一下jwt生成一下token,那么说干就干
首先我先下载了一下composer
composer.phar
下载到本地以后,通过cmd命令行进行下载php-jwt,命令为:

php composer.phar require firebase/php-jwt

图片效果
在这里插入图片描述
在这里插入图片描述
vendor文件夹下就有我们所想要的文件
在这里插入图片描述
现在我们移入我们的根目录
在这里插入图片描述
现在我们进入登录页面,然后进行发放token,第一个框是账户,第二个是密码
在这里插入图片描述
这里是我们jwt.html 的源码



<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="token punctuation">"
>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JWTtitle>
head>
<body>
<input type="text" name="username" id="username">
<input type="password" name="password" id="password">
<button class="sub">提交button>
<input type="reset" value="重置">
<div class="power">
确认是否有权限
div>
body>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js">script>
<script>
$('.sub').click(function(){
$.ajax({
type:'GET',
url: "./login.php",
data:{
username:$('#username').val(),
password: $('#password').val()
},
success:function (e) {
localStorage.setItem('token',e);
console.log(localStorage.getItem('token'));
}
})
})
$('.power').click(function(){
if (localStorage.getItem('token') == null) {
alert('请登录获取token')
return false;
}
$.ajax({
type:'GET',
url: "./index.php",
headers:{
token:localStorage.getItem('token')
},
success:function (e) {
}
})
})
script>
html>

这个是我们点击提交ajax进行访问的php文件


use \Firebase\JWT\JWT;
require './vendor/autoload.php';
ini_set("display_errors","On");
error_reporting(E_ALL);
$config = [
'username' => 1,
'password' => 1
];
$params = $_GET;
if ($config != $params) {
echo 'username or password Wrong';
die;
}
$key = "wrkwd";
$payload = array(
"iat" => time(),
"nbf" => time(),
'exp' => time()+60,
'id' => 1
);
$jwt = JWT::encode($payload, $key);
echo $jwt;

我们输入账号跟密码点击提交,然后获取token,并存入浏览器缓存
在这里插入图片描述

然后我们点击确认是否有权限。
在这里插入图片描述
然后我们等待60s(我设置的exp 为60s),在进行点击返回的是
在这里插入图片描述
点击确认是否有权限的php文件(index.php)代码为


use \Firebase\JWT\JWT;
require './vendor/autoload.php';
ini_set("display_errors","On");
error_reporting(E_ALL);
$headers = getallheaders(); //获取所有header头信息
if (!isset($headers['Token'])) {
echo 'No Have Token'; die;
}
$key = "wrkwd";
$token = $headers['Token'];
try {
$decoded = JWT::decode($token, $key, array('HS256'));
echo 'Token 有效';

} catch (Firebase\JWT\ExpiredException $exception){
echo 'Token 无效';
}

这次是我简单的尝试奥,如果有什么问题,希望各位大佬可以提供帮助,谢谢大佬们!!

总结
1.账号密码登录,若正确则返回token
2.浏览器接收到token,存入本地(浏览器)缓存中
3.每次访问相关权限的时候,把本地缓存放入header头进行访问
4.php拦截器进行判断token。

希望自己可以努力成为自己想要的样子,加油加油!!!,大家也一起加油!!!


版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45100995/article/details/114268847

推荐阅读
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了Apache Spark 2.2.0版本中集群模式的基本概念和工作流程,包括如何通过集群管理器分配资源,以及Spark应用程序在集群中的运行机制。链接:http://spark.apache.org/docs/2.2.0/cluster-overview.html ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文主要介绍如何在Mac操作系统中配置和安装Yii2的基础应用程序模板,同时提供解决常见安装问题的方法。对于高级或自定义应用模板的搭建,可参阅官方文档。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍如何在阿里云环境中利用 Docker 容器化技术部署一个简单的 Flask Web 应用,并确保其可通过互联网访问。内容涵盖 Python 代码编写、Dockerfile 配置、镜像构建及容器运行等步骤。 ... [详细]
  • 本文详细介绍了如何在Windows操作系统中配置和使用Lex(Flex)与Yacc(Bison),包括软件的下载、安装以及通过示例验证其正确性的步骤。 ... [详细]
  • 本文介绍了如何解决 ChinaASP.Upload 错误 '80040002',即必须添加版权信息的问题,并提供了详细的步骤和注意事项。 ... [详细]
author-avatar
手机用户2602925213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有