通过 header 发送到服务器的 Cookie 令牌

Cookie token sending to server via header

这是我第一次尝试与服务器打交道

使用 React 和 express

将令牌从服务器保存到浏览器 cookie

//After login request
res.cookie('token', token, {maxAge: 3600000} ).json({ user: userDoc, message: 'message!', status: 200 });

问题在这里

如何从客户端发送令牌值以及每个 API 进一步应用进程的请求?

经过研究,我发现了两个选择!

选项 A

//Collecting data from cookie 
    let token = Cookies.get('token');
    axios.get("/api/, { headers: {"Authorization" : `Bearer ${token}`} });

选项 B

这是我读到的困惑,浏览器会自动发送 cookie 以及每个 api,而无需手动添加 header

我已经在服务器 let { cookies } = req; 中测试过它的工作

问题

哪个选项是正确的方法?

如果是 A 或 B - 为什么?为什么不呢?

考虑选项 B 依赖服务器处理 cookie。

在处理授权令牌等敏感数据时,必须选择选项B。

这是因为客户端脚本不应以任何方式访问敏感数据。

要防止客户端访问 cookie,请在对 res.cookie 的调用中使用 HttpOnly 标志。

客户端脚本无法访问 HttpOnly cookie。所以使用起来还是很安全的。

即使数据不敏感,您也应该选择选项 B。由于您的浏览器会自动发送 cookie 负载,因此您无需手动处理。