通过标头将cookie令牌发送到服务器

41zrol4v  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(455)

这是我第一次尝试处理服务器
使用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,而无需手动添加标头
我在服务器上进行了测试 let { cookies } = req; 及其工作原理
问题
哪个选项是正确的方法?
如果是a或b-为什么?为什么不呢?

p1iqtdky

p1iqtdky1#

考虑到选项b依赖于服务器来处理cookie。
处理敏感数据(如授权令牌)时,必须选择选项b。
这是因为客户端脚本不应通过任何方式访问敏感数据。
要阻止客户端访问cookie,请在对res.cookie的调用中使用httponly标志。
客户端脚本无法访问httponly Cookie。所以使用起来很安全。
即使数据不敏感,也应该使用选项b。由于浏览器会自动发送cookie负载,因此您不必手动处理。

相关问题