删除请求未获取授权标头

问题描述 投票:0回答:1

我的后端位于

NodeJs
Express
。我的 90% 的端点都经过
validateToken
中间,而且效果很好,但我创建了一个
delete
端点,由于某种原因,即使我发送它,它也没有得到
Authorization
标头。

这是我的代码的一部分:

  • 后端
// CORS
app.use(cors({
  origin: true,
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  allowedHeaders: ['Content-Type', 'Authorization'],
}));
// Routes
router.delete('/package/:id', validateToken, isAdmin, deletePackage);
exports.validateToken = async (req, res, next) => {
  try {
    if (!req.headers.authorization) {
      return res.status(401).send({error: 'Remember to include the Authorization header'});
    }
    const token = req.headers.authorization.split(' ')[1];

    const decodedToken = await admin.auth().verifyIdToken(token);

    if (!decodedToken) {
      return res.status(401).send({error: 'Invalid token'});
    }

    req.user = decodedToken.email;

    next();
  } catch (error) {
    return res.status(400).send({error: error});
  }
};
  • 前端
export const deletePackageApi = id =>
  Request.delete(`/package/${id}`, {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + localStorage.getItem('user-token'),
  });

这是我仅通过

delete
请求得到的回复:

{error: 'Remember to include the Authorization header'}

我将其登录到 tha 后端,并且只有删除端点才无法获取授权标头。

node.js express authorization http-delete
1个回答
0
投票

我建议两件事:

  1. 我不知道
    Request
    是什么!确保
    delete
    Request
    方法正确附加标题。
  2. 检查网络(使用 devTools)以查看前端是否正在发送带有指定标头的请求。
© www.soinside.com 2019 - 2024. All rights reserved.