我今天使用了swagger并添加了auth。但即使我写了任何像“a”或“”之类的信,或者它仍然在输入的内容。我怎样才能检查它是否是真正的招摇过市的代币?我的代码:
const options = {
definition: {
openapi: "3.0.0",
info: {
title: "İlaç Takip Sistemi API",
version: "2.0.0",
description: "ITS API Swagger",
},
servers: [
{
url: "http://localhost:3100",
},
],
components: {
securitySchemes: {
bearerAuth: {
type: "apiKey",
name: "x-auth-token",
scheme: "bearer",
in: "header",
},
},
},
security: [
{
bearerAuth: [],
},
],
},
apis: ["./app/routes.js"],
};
const specs = swaggerJsDoc(options);
app.use("/swagger", swaggerUI.serve, swaggerUI.setup(specs));
这是我检查令牌的方式:
jwt.verify(req.token, process.env.SECRETKEY, (err, authData) => {
if (err) {
res.sendStatus(401);
} else {
res.json(authData);
}
});
1条答案
按热度按时间lskq00tm1#
当我写我的代币给斯威格,然后在那里做我的工作,但当我尝试从斯威格它说,即使我的代币是真实的和工作,而我在 Postman 尝试。
按以下方式更改您的安全方案:
这样,“载体”前缀将自动添加到您在swagger ui中输入的令牌中。
使用时
type: "apiKey"
对于承载身份验证,您必须在令牌值中包含“承载”前缀,也就是说,将令牌输入为Bearer 123
在 swagger 的用户界面中。