Как использовать req.query с заголовком аутентификации? - PullRequest
0 голосов
/ 28 мая 2020

Создание API с системой аутентификации. Извините, если название сбивает с толку. У меня работает токен заголовков авторизации, и я тестировал его с помощью curl -X GET 'https://example.com/api/images/cat' -H 'Authorization: Bearer YOUR_TOKEN' и суперагента. Просто интересно, как я могу реализовать способ использования токена в запросе.

Вот так: https://example.com/api/images/cat?apiKey=YOUR_TOKEN

Вот код:

const { DB } = require('../src/Routes/index.js');
module.exports = function auth(req, res, next) {

  let token;

  if (req.headers.authorization && req.headers.authorization.startsWith('Bearer')) {

    token = req.headers.authorization.split(' ')[1];

  }

  if (!token) {
    return res.status(401).json({"error": "401 Unauthorized", message: "API Token is missing in the query. You will need to generate a Token and put in the apiKey query."});
  }


      try {

    let check = DB.filter(k => k).map(i => i.apiToken);
    let decoded = check.some(e => e == token)

       if(decoded !== true) return res.status(401).json({"error": "401 Unauthorized", message: "The API Key you provided is invalid. Please refer to our Docs () and Generate a Token ()"}); 

        next();

      } catch (err) {
          return res.status(401).json({"error": "401 Unauthorized", message: "API Token is missing in the query. You will need to generate a Token and put in the apiKey query."});
          console.log(`Console Error - Catch Error 401 Unauthorized.`)
      } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...