放置和修补请求中未定义令牌。 MERN 堆栈应用

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

使用 men 应用程序。我在授权标头中传递令牌。问题是每当我从前端使用 put 或 patch 方法时,令牌都是未定义的。获取、发布、删除请求工作正常。 Api 也可以与邮递员一起正常工作。

前端操作 ->

export const approveClient = (id) => async (dispatch) => {
  try {
    const config = {
      headers: {
        Authorization: `${localStorage.getItem("token")}`,
        },
    };
    dispatch({ type: adminConstants.APPROVECLIENT_REQUEST });
    const res = await axios.put(`/admin/approveClient/${id}`, config);
    dispatch({
      type: adminConstants.APPROVECLIENT_SUCCESS,
      payload: res.data,
    });
  } catch (error) {
    dispatch({
      type: adminConstants.APPROVECLIENT_FAIL,
      payload: error.response.data,
    });
  }
};

后端中间件功能->

const isAuthenticated = async (req, res, next) => {
  try {
    const token = req.headers.authorization;
    if (!token) {
      return res.status(401).json({ success: false, message: "Not logged in" });
    }
    const decoded = jwt.verify(token, process.env.JWT_SECRET);
    const user = await User.findById(decoded._id);
    const client = await Client.findById(decoded._id);
    const admin = await Admin.findById(decoded._id);
    if (user) {
      req.user = user;
    }
    if (client) {
      req.user = client;
    }
    if (admin) {
      req.user = admin;
    }

    next();
  } catch (error) {
    res.status(500).json({ success: false, message: error.message });
  }
};
reactjs express axios patch put
1个回答
0
投票

同样的事情,我只在 get 请求中我能够传递查询,但 get 工作正常

© www.soinside.com 2019 - 2024. All rights reserved.