PHP使用jwt验证;
一.安装jwt包
这里是jwt的官网?https://jwt.io?,这里搜索PHP的
进入到对应的git项目中?/caseinfo/link/3500f3c1e813414f88f29fc5e8d2f335
composer进行下载安装
二.使用jwt
查看文档?/caseinfo/link/bbe2e10429fe4ac49167be1a3675a4c2
/caseinfo/link/3500f3c1e813414f88f29fc5e8d2f335/tree/3.2
首先在app目录下创建一个app/Common/Auth/目录,在该目录下创建一个class,jwt实例用来封装使用
/app/Common/Auth/JwtAuth.php,使用单例模式
在controller中使用,这里将登陆返回token改为jwt的方式
然后在postman上进行验证,这里发现一个问题:
最终验证成功
验证token
在JwtAuth.php中增加$decodeToken(解析token字符串),以及decode方法(解析token),validate方法(验证token前两个部分),verify方法(验证token最后一个字符串,验证token加密,有没有被篡改)
使用laravel中间件进行验证token
在app/Http/Middleware/下定义中间件JwtMiddleware.php
在app\Http\Kernel.php中注册中间件
路由使用中间件
postman验证,这里token也可以放在header头信息里
总结:将上期的token签名验证改为用jwt验证,并使用了中间件进行了请求验证处理
?