为了使用JWT保护REST API,根据某些资料(如本指南和此问题),JWT可以存储在任一localStorage中或Cookies中。根据我的理解:
- localStorage受XSS限制,通常不建议在其中存储任何敏感信息。
- 用 Cookie,我们可以应用标志“ httpOnly”,以减轻XSS的风险。但是,如果我们要从后端的Cookies中读取JWT,则需要接受CSRF。
因此,基于以上前提,最好将JWT存储在Cookies中。在对服务器的每个请求中,都将使用Cookie方案从Cookie中读取JWT并将其添加到Authorization标头中。然后,服务器可以验证请求标头中的JWT(与从Cookie中读取JWT相反)。
我的理解正确吗?如果是这样,上述方法是否涉及安全性?还是实际上我们可以首先使用localStorage逃脱?