今天突然就想用一下jwt生成一下token,那么说干就干
首先我先下载了一下composer
composer.phar
下载到本地以后,通过cmd命令行进行下载php-jwt,命令为:
php composer.phar require firebase/php-jwt
图片效果
vendor文件夹下就有我们所想要的文件
现在我们移入我们的根目录
现在我们进入登录页面,然后进行发放token,第一个框是账户,第二个是密码
这里是我们jwt.html 的源码
<!doctype html>
<!--suppress ALL -->
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>JWT</title>
</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=".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.Item('token'));}})})$('.power').click(function(){if (Item('token') == null) {alert('请登录获取token')return false;}$.ajax({type:'GET',url: "./index.php",headers:{Item('token')},success:function (e) {}})})</script>
</html>
这个是我们点击提交ajax进行访问的php文件
<?php
use FirebaseJWTJWT;
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)代码为
<?php
use FirebaseJWTJWT;
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 (FirebaseJWTExpiredException $exception){echo 'Token 无效';
}
这次是我简单的尝试奥,如果有什么问题,希望各位大佬可以提供帮助,谢谢大佬们!!
总结
1.账号密码登录,若正确则返回token
2.浏览器接收到token,存入本地(浏览器)缓存中
3.每次访问相关权限的时候,把本地缓存放入header头进行访问
4.php拦截器进行判断token。
希望自己可以努力成为自己想要的样子,加油加油!!!,大家也一起加油!!!
本文发布于:2024-02-02 13:22:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170685134844082.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |