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

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

我今天使用了swagger并添加了auth。但即使我写了任何像“a”或“”之类的信,或者它仍然在输入的内容。我怎样才能检查它是否是真正的招摇过市的代币?我的代码:

  1. const options = {
  2. definition: {
  3. openapi: "3.0.0",
  4. info: {
  5. title: "İlaç Takip Sistemi API",
  6. version: "2.0.0",
  7. description: "ITS API Swagger",
  8. },
  9. servers: [
  10. {
  11. url: "http://localhost:3100",
  12. },
  13. ],
  14. components: {
  15. securitySchemes: {
  16. bearerAuth: {
  17. type: "apiKey",
  18. name: "x-auth-token",
  19. scheme: "bearer",
  20. in: "header",
  21. },
  22. },
  23. },
  24. security: [
  25. {
  26. bearerAuth: [],
  27. },
  28. ],
  29. },
  30. apis: ["./app/routes.js"],
  31. };
  32. const specs = swaggerJsDoc(options);
  33. app.use("/swagger", swaggerUI.serve, swaggerUI.setup(specs));

这是我检查令牌的方式:

  1. jwt.verify(req.token, process.env.SECRETKEY, (err, authData) => {
  2. if (err) {
  3. res.sendStatus(401);
  4. } else {
  5. res.json(authData);
  6. }
  7. });
lskq00tm

lskq00tm1#

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

  1. bearerAuth: {
  2. type: "http",
  3. scheme: "bearer",
  4. },

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

相关问题