React无法从浏览器cookie中读取csrf令牌(部署在aws ecs集群上)
import Cookies from 'js-cookie'; Cookies.get('XSRF-TOKEN'); I am also getting message from aws logs: Not injecting HSTS header since it did not match request to [Is Secure]
字符串
cgvd09ve1#
像js-cookie这样的工具使用document.cookie来解析任何cookie。如果您的cookie是由后端设置的,运行在不同的源(域+端口)上,并且主要由前端使用fetch/ XHR访问,则这些cookie将不会出现在document.cookie中,因此js-cookie也不会出现。我认为你应该考虑一个完全不同的设计。Cookie不是API提交信息的好方法。它们对于浏览器透明地处理正在进行的会话来说是 * 优秀 * 的,但这不是一个很好的用例。此外,在API中,XSRF保护并不是你经常需要的东西。也许您可以找到一种不需要此令牌的设计,或者只是在后端端点的响应主体中返回令牌,而不是试图找到解决方法。我不知道为什么在你的开发环境中确实有效,但我相信有一个合理的解释。
js-cookie
document.cookie
fetch
1条答案
按热度按时间cgvd09ve1#
像
js-cookie
这样的工具使用document.cookie
来解析任何cookie。如果您的cookie是由后端设置的,运行在不同的源(域+端口)上,并且主要由前端使用
fetch
/ XHR访问,则这些cookie将不会出现在document.cookie
中,因此js-cookie
也不会出现。我认为你应该考虑一个完全不同的设计。Cookie不是API提交信息的好方法。它们对于浏览器透明地处理正在进行的会话来说是 * 优秀 * 的,但这不是一个很好的用例。此外,在API中,XSRF保护并不是你经常需要的东西。
也许您可以找到一种不需要此令牌的设计,或者只是在后端端点的响应主体中返回令牌,而不是试图找到解决方法。
我不知道为什么在你的开发环境中确实有效,但我相信有一个合理的解释。