如何在swagger/nodejs中检查承载令牌

cbeh67ev  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(461)

我今天使用了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);
      }
    });
lskq00tm

lskq00tm1#

当我写我的代币给斯威格,然后在那里做我的工作,但当我尝试从斯威格它说,即使我的代币是真实的和工作,而我在 Postman 尝试。
按以下方式更改您的安全方案:

bearerAuth: {
          type: "http",
          scheme: "bearer",
        },

这样,“载体”前缀将自动添加到您在swagger ui中输入的令牌中。
使用时 type: "apiKey" 对于承载身份验证,您必须在令牌值中包含“承载”前缀,也就是说,将令牌输入为 Bearer 123 在 swagger 的用户界面中。

相关问题