我为api创建了详尽的文档,但是我不想向所有人公开文档url,我想保护此路由:mydomain.com/api-docs仅适用于具有特定令牌的用户(例如:admin),我有一个中间件来在控制器执行任何操作之前检查用户角色,所以我的问题是如何保护此路由:
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocs));
我已经尝试这样使用,但没有成功:
app.use("/api-docs",my_Middleware, swaggerUi.serve, swaggerUi.setup(swaggerDocs));
// Middleware
...
const payload = jwt.decodeToken(token);
const user = User.findOne({ _id: payload.id });
const role = user.role;
if(role !== "admin") { ... // throws an error here }
req.user = user;
next()
....