微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Axios - 密码暴露在 res.config

如何解决Axios - 密码暴露在 res.config

我正在向我的服务器发出 axios post 请求以登录用户并在控制台中记录响应以观察返回的数据:

const Login = () => {
  const [email,setEmail] = useState("");
  const [password,setPassword] = useState("");

  const submitForm = (e) => {
    e.preventDefault();

    axios
      .post("http://127.0.0.1:3000/login",{ email,password })
      .then((res) => console.log("res",res))
      .catch((err) => console.log("err",err));

    console.log({ email,password });
  };

用户成功登录时,我会生成一个令牌,将用户的数据与这个新生成的令牌一起返回。正如您在此处看到的,我正在从响应正文中删除用户密码,以免暴露密码:

const generatetoken = (user) => {
  delete user.password;

  const token = jwt.sign(user,config.appKey,{ expiresIn: 86400 });

  return { ...user,...{ token } };
};

这是控制台中记录的数据。在图 1 中,您可以看到响应的数据部分中没有密码。

enter image description here

然而,在响应的配置部分,密码被暴露(参见图 2)。我的问题是,这是值得关注的事情吗?如果是这样,我如何从响应中完全删除用户的密码?

enter image description here

提前致谢!

解决方法

如果您的连接是安全的(基于 TLS 的 HTTP,...),则无需担心。

HTTP 响应不包括它,因为实际的响应负载是 res.data

它存储在 axios response object 中,因为 res.config 是为请求提供给 axios 的配置。但它没有存储在任何持久存储中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。