企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 1. 安装及测试使用 * 下载 APIEX JWT版 压缩包,或者 克隆项目后,自己手动压缩,注意,压缩时,要求项目必须处于压缩包的一级目录下,不能在外部再包裹一层文件夹。至此,一个 APIEX JWT版 离线插件包就完成了。 * 按照 fastadmin 框架手册说明,安装 并 运行 fastadmin 框架后,进入后台,点击左侧目录 **插件管理** ,在右侧插件列表上方,点击 **离线安装** ,选择 APIEX JWT版 离线插件包进行安装即可。 * 安装完成后,需要在 \application\config.php 配置文件 中,对应路由管理的配置信息中,加入 APIEX JWT版 专用路由配置,如下代码效果。 ``` // 路由配置文件(支持配置多个) 'route_config_file' => ['route', 'apiload'], //若使用 fastadmin V1.0.0.20200506_beta 以后的版本,则需要开启域名部署,才能开启路由功能 'url_domain_deploy'      => true, ``` * 可以访问如下信息,测试接口扩展插件是否成功安装。 * http://www.xxxxx.com/api/apiexdemo/noneedlogin * 示例成功结果如下: ``` { "code": 1, "msg": "apiex路由请求成功", "time": "1599552982", "data": null } ``` * 在示例接口中,加入了三种情况接口示例,分别如下: * 当通过 token 验证用户 api 访问权限 * 示例接口为:api/apiexdemo/token * 此请求方法为基础权限管理逻辑,与fastadmin所携带的基础api权限验证相同。即需要在 后台管理 => 会员管理 => 会员规则管理 中,添加路由,之后,通过 会员组管理 设置对应会员组的访问权限。最后,将对应用户归属该组,则拥有对应权限。 * 前端在请求此接口时,需要加入如下参数: ``` //token 参数可以随着 get 、post 、header 参数提交 token: d2c46c45-9a71-458b-a47d-51acf00a00dc ``` * 当通过 账号 验证用户 api 访问权限 * 示例接口为:api/apiexdemo/account * 此验证为 apiex 扩展 api 效果,即:jwt验权,后台权限设置方法同token,然后在控制器中开启 jwt 验证,在访问时 header 中加入 Authrization: Bearer xxxx(jwt) 。jwt验证开启后,推荐在 apiex jwt 插件配置中,设置对应的自定义加密秘钥字符串和过期时间等。 * 验证设置方法:在对应控制器中,设置如下代码 ``` protected $jwtAuth = true; //开启 jwt 验证 ``` * 前端在header参数中,配置如下参数: ``` Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1OTk0NjQwNjMsIm5iZiI6MTU5OTQ2NDA2MywiZXhwIjoxNTk5NDY3NjYzLCJkYXRhIjp7InVpZCI6IjJiYmE0ZDc3MjNkYmRiMWYzOTZhMGIwNzY3MWJiODczIiwiYWNjb3VudCI6ImFkbWluIn0sImlydCI6MH0.Vcq6CglPuHIiGAKHQcKxUrjc0vGdYvxUtS01KxFuzA4  ``` * 测试示例如下: ``` //本测试为 vscode 的 rest client 插件对应的 api 测试文件,若使用 vscode ,则可以安装 rest client 插件后,使用本测试文档 //header参数 和 body参数 之间,一定要留一条空 ### GET http://www.test.club/api/apiexdemo/noneedlogin HTTP/1.1 Content-Type:application/json { } ### POST http://www.test.club/api/apiexdemo/account HTTP/1.1 content-type:application/json Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1OTk1NDU0NjIsIm5iZiI6MTU5OTU0NTQ2MiwiZXhwIjoxNTk5NTQ5MDYyLCJkYXRhIjp7InVpZCI6IjJiYmE0ZDc3MjNkYmRiMWYzOTZhMGIwNzY3MWJiODczIiwiYWNjb3VudCI6ImFkbWluIn0sImlydCI6MH0.u0-y5-R8lbWjnJtUk6Z58zoOumf0AZ\_szeqwa1LdiaM { "test": "123" } ### POST http://www.test.club/api/jwt/create/user HTTP/1.1 content-type:application/json { "account": "admin", "password": "123456" } ### POST http://www.test.club/api/jwt/create/user HTTP/1.1 content-type:application/json { "account": "admin", "password": "123456", "isRefreshTokenKeepLive": 1 } ### POST http://www.test.club/api/jwt/refresh HTTP/1.1 content-type:application/json { "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1OTk0NjM5MDUsIm5iZiI6MTU5OTQ2MzkwNSwiZGF0YSI6eyJ1aWQiOiIyYmJhNGQ3NzIzZGJkYjFmMzk2YTBiMDc2NzFiYjg3MyIsImFjY291bnQiOiJhZG1pbiJ9LCJpcnQiOjF9.3kH1ok5ahdl8L3rQvhcKxmzL3mH1X6Gjbr9q-cS9kgE" } ``` * 若产生的 refresh\_token 为永久有效的,则在后台中,可以控制其是否生效,理论上讲,每个账号只能有一个永久有效的 refresh\_token。若用户修改了用户名或密码,则在生成新的永久有效的 refresh\_token 时,会默认关闭其他属于此账号的 永久refresh\_token。这样的好处是,在一定程度上,防止由于永久 refresh\_token 外泄,导致无法取消其权限的安全隐患。 * 当 无需验证 api 访问权限 * 示例接口为:api/apiexdemo/nologin * 此情景为fastadmin基础权限管理,只需要在对应控制器中,加入如下代码即可: ``` protected $noNeedLogin = '*';//设置无需登录验证 ``` * 安全起见,强烈不推荐使用此功能,尽量使用 “当通过 账号 验证用户 api 访问权限”,方便对公共接口进行权限管理。 ## 2. 相关下载地址: * fastadmin框架文档:[https://doc.fastadmin.net/docs/index.html](https://doc.fastadmin.net/docs/index.html) * apiex jwt版 插件码云地址:[https://gitee.com/index103000/fastadmin\_addons\_apiex\_jwt](https://gitee.com/index103000/fastadmin_addons_apiex_jwt) ## 3. 注意事项: #### APIEx插件在安装时,会安装一个示例接口,推荐在测试完成后,删除示例相关的接口信息。 * 示例接口文件路径如下:\application\api\controller\apiexdemo * apidemo 为示例 api 控制器目录,在安装 APIEx 插件时,会自动安装此示例,此示例可用于测试是否可以正常使用接口。 * 另外,对应的示例路由信息配置的对应路径如下: + \application\api\apiroute.php + \application\api\version\api\1.0.0\apiroute.php * 安装完成后,若要测试接口权限相关信息,那么需要到后台配置对应账号的访问权限。