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

      

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东宇科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值