【发布时间】:2021-07-31 09:05:26
【问题描述】:
我正在向我的服务器发出 axios 发布请求以登录用户并在控制台中记录响应以观察返回的数据:
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 中,您可以看到响应的数据部分没有密码。
但是,在响应的配置部分中,密码是公开的(参见图 2)。我的问题是,这值得关注吗?如果是这样,我如何从响应中完全删除用户的密码?
提前致谢!
【问题讨论】:
标签: javascript node.js reactjs axios