白名单只能对整个app生效吗
时间: 2023-09-11 13:09:23 浏览: 78
在koa-parameter中,白名单并不是只能对整个app生效的,我们也可以对不同的路由设置不同的白名单。具体实现方法如下:
1. 在中间件中设置全局白名单:
```javascript
const parameter = require('koa-parameter');
const app = new Koa();
app.use(parameter(app, {
whitelist: ['username', 'password']
}));
```
2. 在需要设置白名单的路由中,使用`parameter`方法创建一个局部的koa-parameter实例,并设置局部白名单:
```javascript
const Router = require('koa-router');
const parameter = require('koa-parameter');
const router = new Router();
router.post('/login', parameter({ whitelist: ['username', 'password'] }), async (ctx, next) => {
ctx.verifyParams({
username: { type: 'string', required: true },
password: { type: 'string', required: true },
});
// ...
});
```
这样就可以对不同的路由设置不同的白名单了。需要注意的是,局部白名单会覆盖全局白名单。如果在某个路由中设置了局部白名单,则只会对局部白名单中的参数进行校验,而不会对全局白名单中的参数进行校验。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)