具体步骤参照: [ JWT & Lumen ]
第一步
在项目根目录 执行命令
- 1
- 1
第二步
在 bootstrap/app.PHP 的 Register Service Providers 部分添加注册
- 1
- 2
- 3
- 1
- 2
- 3
第三步
3.1 在 app 目录下创建 helper.php 文件 并写入以下代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
3.2 在根目录 composer.json 文件内 “autoload” 部分 添加自动加载 helper.php
- 1
- 2
- 3
- 1
- 2
- 3
3.3 运行
- 1
- 1
第四步
注意: 如果不执行第四步,直接执行第五步,会报错:
“There are no commands defined in the “vendor” namespace. ”
所以要先引入 原文作者 写好的一个包 :
[vendorPublishCommand]https://github.com/laravelista/lumen-vendor-publish也可以直接访问上面的地址,把代码挡下来, 放到 vendor/basicit/lumen-vendor-publish 目录下,
basicit/lumen-vendor-publish 目录需要自己手动创建
这样就不用执行 下面的命令了, 由于国内被墙, 执行命令会很慢!
4.1 运行 composer require basicit/lumen-vendor-publish 命令(时间很长)
4.2 在 app/Console/Kernel.php 文件内 添加
- 1
- 2
- 3
- 1
- 2
- 3
第五步
运行
- 1
- 1
第六步
去 bootstrap/app.php 内, 找到 $app->withFacades(); 并去掉注释,在下面写上
- 1
- 2
- 3
- 1
- 2
- 3
第七步
项目根目录执行 生成JWT 秘钥
项目根目录运行
- 1
- 1
执行完了之后,会在 config/jwt.php 文件里自动配置好 秘钥
- 1
- 1
这个秘钥也可以移动到 .env文件里,如下
- 1
- 2
- 1
- 2
注意: 如果使用 postman 测试 接口,在使用 PUT 等协议方法的情况下, 使用 x-www-form-urlencoded 发送数据, 不要使用默认的 form-data格式的数据
第八步
在某些情况下,可能某些接口,需要token 验证,某些则不需要 就需要去 bootstrap/app.php 里面
找到 “Register Middleware” 部分,去掉 “routeMiddleware” 注释
并添加代码后是这样:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
然后你就可以去 你的路由里面 这样写了,表示在请求这个路由的时候,会首先进行JWT验证
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
如果你用的是Dingo API 的话,就这样写
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
第九步
把 /vendor/laravel/lumen-framework/config/auth.php 复制 到 根目录下的 config 目录下,
并且 修改
- 1
- 1
为
- 1
- 1
如果出现 App\User not found 说明没有定义 User 的 model, JWT 最终还是去调用的 Laravel的 auth ,他会去实例化 UserModel
如果以上步骤都正确, 就可以写个登陆方法进行测试了.