如何使用 headers 通过令牌访问 API 端点?

How to access an API endpoint through a token using headers?

目前我有一个 public api 实现,任何人都可以访问它。

我的意图是用户现在通过 header 传递令牌,以便他们可以从端点访问数据。但是我不知道如何在我的代码中实现它。

感谢您的帮助!

router.get('/AllReports' , (req , res) =>{
  PluginManager.reports()
    .then(reports =>{
      res.status(200).json({
        reports
      });
    }).catch((err) =>{
      console.error(err);
    });
});

app.js

const express = require('express');
const morgan = require('morgan');
const helmet = require('helmet');
const cors = require('cors');
const bodyParser = require('body-parser');

const middlewares = require('./middlewares/index').middleware;
const api = require('./api');

const app = express();

app.use(morgan('dev'));
app.use(helmet());
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));


app.get('/', (req, res) => {
  res.json({
    message: '✨✨'
  });
});

app.use('/api/v1', api);

app.use(middlewares);

module.exports = app;

要查看 HTTP 请求列表 headers,您可以使用:

console.log(JSON.stringify(req.headers));

然后你可以检查token是否有效然后

继续处理。

例子

router.get('/', (req, res) => {

  // header example with get
  const authHeader = req.get('Authorization');  //specific header
  console.log(authHeader);
  // example with headers object.  // headers object
  console.log(req.headers);

});