接口鉴权支持自定义编写接口鉴权和使用系统自带 bearer-jwt的鉴权,使用guard关键字来指定鉴权的处理器,可以在 http接口中使用,也可以在table和form中使用
参数列表:
参数名称 | 说明 |
---|---|
path | 请求的路径 |
params | 请求 url 参数 |
query | 查询参数 |
payload | POST 请求参数 |
headers | 请求头部 |
首先我们自定义一个鉴权的方法/scripts/guard.js
/*** 字段验证guard* @param {*} path* @param {*} params* @param {*} query* @param {*} payload* @param {*} headers* @returns*/function Validate(path, params, query, payload, headers) {console.log([path, params, query, payload, headers]);if (!payload.name) {throw new Exception("名称不能为空!", 400);}var exists = Process("models.product.get", {wheres: [{ column: "name", value: payload.name }],});if (exists && exists.length > 0) {throw new Exception("名称已经存在", 400);}return;}
在 /apis/product.http.yao
增加一条路由,使用 curl 的时候会提示 {"code":400,"message":"名称不能为空!"}
{"path": "/validate","guard": "scripts.guard.Validate","method": "POST","process": "models.product.Save","in": [":payload"],"out": { "status": 200, "type": "application/json" }}
curl --location --request POST 'http://127.0.0.1:5099/api/product/validate'
在 /tables/product.tab.yao
和 /forms/product.form.yao
中加入:
"action": {"bind": { "model": "product" },"save": {"guard": "scripts.guard.Validate"}}
修改列表的名称字段为空,然后点击提交:
接口鉴权支持自定义编写接口鉴权和使用系统自带 bearer-jwt的鉴权,使用guard关键字来指定鉴权的处理器,可以在 http接口中使用,也可以在table和form中使用
参数列表:
参数名称 | 说明 |
---|---|
path | 请求的路径 |
params | 请求 url 参数 |
query | 查询参数 |
payload | POST 请求参数 |
headers | 请求头部 |
首先我们自定义一个鉴权的方法/scripts/guard.js
/*** 字段验证guard* @param {*} path* @param {*} params* @param {*} query* @param {*} payload* @param {*} headers* @returns*/function Validate(path, params, query, payload, headers) {console.log([path, params, query, payload, headers]);if (!payload.name) {throw new Exception("名称不能为空!", 400);}var exists = Process("models.product.get", {wheres: [{ column: "name", value: payload.name }],});if (exists && exists.length > 0) {throw new Exception("名称已经存在", 400);}return;}
在 /apis/product.http.yao
增加一条路由,使用 curl 的时候会提示 {"code":400,"message":"名称不能为空!"}
{"path": "/validate","guard": "scripts.guard.Validate","method": "POST","process": "models.product.Save","in": [":payload"],"out": { "status": 200, "type": "application/json" }}
curl --location --request POST 'http://127.0.0.1:5099/api/product/validate'
在 /tables/product.tab.yao
和 /forms/product.form.yao
中加入:
"action": {"bind": { "model": "product" },"save": {"guard": "scripts.guard.Validate"}}
修改列表的名称字段为空,然后点击提交: