PHP使用jwt验证

一.安装jwt包

这里是jwt的官网 https://jwt.io ,这里搜索PHP的

PHP使用jwt验证_第1张图片

进入到对应的git项目中 https://github.com/lcobucci/jwt

composer进行下载安装

PHP使用jwt验证_第2张图片

二.使用jwt

查看文档 https://lcobucci-jwt.readthedocs.io/en/latest/configuration/

https://github.com/lcobucci/jwt/tree/3.2

首先在app目录下创建一个app/Common/Auth/目录,在该目录下创建一个class,jwt实例用来封装使用

PHP使用jwt验证_第3张图片

/app/Common/Auth/JwtAuth.php,使用单例模式

PHP使用jwt验证_第4张图片

PHP使用jwt验证_第5张图片

PHP使用jwt验证_第6张图片

在controller中使用,这里将登陆返回token改为jwt的方式

PHP使用jwt验证_第7张图片

然后在postman上进行验证,这里发现一个问题:

PHP使用jwt验证_第8张图片

PHP使用jwt验证_第9张图片

最终验证成功

PHP使用jwt验证_第10张图片

验证token

在JwtAuth.php中增加$decodeToken(解析token字符串),以及decode方法(解析token),validate方法(验证token前两个部分),verify方法(验证token最后一个字符串,验证token加密,有没有被篡改)

PHP使用jwt验证_第11张图片

PHP使用jwt验证_第12张图片

使用laravel中间件进行验证token

在app/Http/Middleware/下定义中间件JwtMiddleware.php

PHP使用jwt验证_第13张图片

在app\Http\Kernel.php中注册中间件

PHP使用jwt验证_第14张图片

路由使用中间件

PHP使用jwt验证_第15张图片

PHP使用jwt验证_第16张图片

postman验证,这里token也可以放在header头信息里

PHP使用jwt验证_第17张图片

博客搭建(4)

总结:将上期的token签名验证改为用jwt验证,并使用了中间件进行了请求验证处理

 

你可能感兴趣的:(博客搭建,jwt,laravel,项目架构,php)