手把手教你用thinkphp+jwt实现前后端分离

使用Thinkphp6+jwt 简单实现前后端分离

作者:小范

  1. 安装thinkphp

composer create-project topthink/think 目录名

在WEB目录下执行以上命令进行安装

 

我们cd到项目里执行命令 php think run 查看是否安装成功

到此thinkphp安装完成

  1. 多应用模式

安装后默认使用的是单应用模式,我们先改为多应用 以便于后期的开发

使用以下命令来安装多应用模式的扩展

composer require topthink/think-multi-app

  1. 首先再api应用下建立一个控制器Login

可以使用think的指令来快速生成

php think make:controller api@v1/Login

  1. 在api应用下建立一个路由文件

先来测试一下 添加一条路由

使用postman工具去post一下看看我们的路由是否正确

好的 是正常的,我们来进行下一步使用JWT创建token和路由使用中间件进行验证

实现授权接口需登录后才能访问,未授权接口也就是公共接口可以不需要登录就能访问

首先我们需要安装一下php-jwt扩展 使用以下命令来安装

composer require firebase/php-jwt

安装成功后首先我们来创建一个公共类来使用Jwt用来获取token和验证token

我们可以在应用目录app下面来建立一个类给它命名为JwtAuth

引入两个类

use Firebase\JWT\JWT;

use Firebase\JWT\Key;

再来写两个方法signToken 和checkToken 分别用来获取token和验证token

新增一个中间件AuthTokenmiddleware用来验证Token 若 token不合法则对该请求进行拦截

可以使用 php think make:middleware AuthTokenmiddleware 快速生成中间件

然后在Login类中新建index方法 注册路由中间件

应用后我们来测试一下 get /api/index

我们在Login中login方法中 写一个如果登录成功就去生成并返回一个token

再来测试一下  登录成功 返回token

在header中携带此token参数去get一下api/index 就发现可以正常访问了

这样一个前后端分离的框架就做好了 可以在此基础上肆意发挥哦

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值