简体   繁体   中英

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

Currently I have a public api implemented, anyone can access it.

My intention is that the user now pass a token through the header so that they can access the data from the endpoints. But I don't know how to implement it in my code.

I appreciate your help!

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;

To see a list of HTTP request headers, you can use:

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

Then you can check if token is valid and then

go on with processing.

Example

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

});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM