0


TP6集成JWT的步骤。

最近面试一个jwt的问题,开始质疑我以前都是只要有请求就一直换取Token这种做法,其实token过期后再更新也是可以的。最近有个项目是TP6,所以就研究了一下。首先翻看tp6官网,作者推荐的jwt模块见下图。

推荐是:https://github.com/QThans/jwt-auth

JWT的流程是:

1、前端post登录地址,后端返回token.

2、前端检查后端是否有返回token,有就保存token(实际后端已经存到cookie里了),以后发请求都带上token .没有就算了。

3、后端检查token是否过期,没就算了,如果过期,将token加入黑名单,并再次返回token.

现在来详细看下。

1 、集成好刚下载的jwt-auth插件。

然后我编写了2个路由,一个登录,一个是api,api需要检查是否有token.

看下login的代码,实际上需要验证用户密码,然后返回给前端token.我这里直接显示token.

访问登录地址,显示了token.

直接访问用户地址。结果显示Mast have token. 这里显示路由group里的中间件起作用了。

在header里 带上token后,可以访问正常,这里注意在返回的token前需要加上 Bearer空格。

为什么是hello,1,因为我的代码是这样的。这里的1是token里存的用户ID。

接下来就是,只要header里有这个token,就是可以访问的。

接下来看下。插件这里写了cookie,如果你header里带cookie:token=返回token。这样也是可以访问的。登录没自动写cookie.其实也应该要写,这样就不用另外在写AuthorizationHeader了。这里就是JWT3种方法中的2种了。选一种用就可以了。JWT推荐用AuthorizationHeader,那我们这里就忽略cookie吧。

那如果是用Postman的话,对应上面2种做法有2个选项是可以勾选的。

打开这2个开关中的1个就可以自动换token了。

代码已经打包上传 tp6整合jwt范例可二次开发做服务器后端-PHP文档类资源-CSDN下载

最后我就说下我遇到的2个坑。需要解决的方法是:

1、安装模版,tp6要用到view是需要安装模版的。

composer require topthink/think-view
  ![](https://img-blog.csdnimg.cn/4da86c83951f487ba6e35d96ed5b5c40.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic5a6H56eR5oqA,size_20,color_FFFFFF,t_70,g_se,x_16)

2、更新到最新的tp6版本。 Cannot instantiate interface thans\jwt\contract\Storage

标签: 开发语言 后端 TP6

本文转载自: https://blog.csdn.net/ldy889/article/details/123234954
版权归原作者 东宇科技 所有, 如有侵权,请联系我们删除。

“TP6集成JWT的步骤。”的评论:

还没有评论