lanffff 6年前

修改理由:

完善排版

此投稿已在 6年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1   因为下一个项目要用TP5开发一个小程序,所以就使用到了,TP框架,因为小程序开发需要后台来编写api接口,所以就上网查了一下有没有相关的依赖,在此推荐一下think-api扩展工具,因为主要想使用其中的jwt功能来判断小程序用户的登录状态,下面就以本人的项目为例,简单和大家聊一下,通过think-api来部署JWT。
 1**  因为下一个项目要用TP5开发一个小程序,所以就使用到了,TP框架,因为小程序开发需要后台来编写api接口,所以就上网查了一下有没有相关的依赖,在此推荐一下think-api扩展工具,因为主要想使用其中的jwt功能来判断小程序用户的登录状态,下面就以本人的项目为例,简单和大家聊一下,通过think-api来部署JWT。
22   1.安装依赖
33        本人使用的TP版本是TP5.1,扩展下载地址:https://github.com/czewail/think-api ,通过composer安装依赖。
44        `composer require zewail/think-api:1.1.x`
55   2.配置说明
66        通过composer安装完毕后,咱们可以在 vendor/think-api/config/jwt.php文件中查看jwt的配置,主要是用户模型路径那块,需要修改一下。
7         `return [
 7        ```return [
88                       // 加密算法
99                       'algorithm' => 'HS256',
1010                       // HMAC算法使用的加密字符串
 
1919                       'ttl' => 120,
2020                       // 用户模型路径
2121                       'user' => app\api\model\User::class,
22                     ];`
 22                    ]; ```
2323   3.创建API接口控制器
2424        通过命令行创建我们想要反回Token给前端的控制器
2525        `php thnk make:controller api/Index`   
 
2727         在创建的文件头添加文件路径:
2828         `use Zewail\Api\Facades\JWT;`
2929        案例代码如下:
30         ` public function index(){
 30        ```public function index(){
3131           //获取前台发送过来的登录信息
3232           $tel = $this->request->tel;
3333           $password = $this->request->passwword;
 
4141           $msg = "验证成功";
4242           //把token发送给前台确认是否成功登陆
4343           return $this->ApiSuccess($token, $msg);
44    }`
 44   } ```
4545      有一点需要注意因为API离默认的接收参数是mobile和password。上门的例子中是tel和password。更改了变量名称,所以我们需要在用户模型中接入一下代码来说明。以此类推。
4646        `public $jwtSub = 'tel';`
4747       5.配置路由
 
5858![ThinkPHP5-使用 think-API 部署 JWT](https://cdn.learnku.com/uploads/images/201907/02/38269/iD37UipyNA.png!large)
5959
6060之后携带头部访问验证路由,验证代码如下:
61       ` if ($user = JWT::authenticate()) {
 61      ``` if ($user = JWT::authenticate()) {
6262               return true;
63        }`
 63       } ```
6464如果验证无误就会返回true。