我如何在 swagger/nodejs 中检查不记名令牌

How can i check bearer token in swagger/nodejs

我今天使用 swagger 并添加了身份验证。但即使我写任何字母,如“a”或“abc”或它仍然输入的内容。我如何检查它是否是使用 swagger 的真正标志?我的代码:

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);
      }
    });

When i write my token to swagger then do my works in there but when i try from swagger its saying Unauthorized even my token is true and working while i trying in postman.

按如下方式更改您的安全方案:

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

这样,“Bearer”前缀将自动添加到您在 Swagger 中输入的标记中 UI。

当使用 type: "apiKey" 进行 Bearer 身份验证时,您必须在令牌值中包含“Bearer”前缀,即在 Swagger UI 中输入令牌作为 Bearer abc123 .