Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在哪里将JWT令牌存储在React js中,以验证应用程序后端的各种路由?_Javascript_Node.js_Reactjs_Express_Express Jwt - Fatal编程技术网

Javascript 我可以在哪里将JWT令牌存储在React js中,以验证应用程序后端的各种路由?

Javascript 我可以在哪里将JWT令牌存储在React js中,以验证应用程序后端的各种路由?,javascript,node.js,reactjs,express,express-jwt,Javascript,Node.js,Reactjs,Express,Express Jwt,我正在使用JWT令牌进行身份验证和授权。登录后,我想将令牌的值存储在前端(React js),以便我们可以根据React js中不同组件的不同api调用在服务器上发送令牌,以验证节点js中的不同路由。我正在React js中创建应用。出于安全考虑,我不想存储在本地存储或cookie中。请告诉我更好的存储方式。您的安全考虑将适用于任何需要保留令牌的情况 推荐的方法是使用httpOnly cookie,此cookie不能从javascript访问,您不必担心在每个请求中发送令牌,此cookie是当前

我正在使用JWT令牌进行身份验证和授权。登录后,我想将令牌的值存储在前端(React js),以便我们可以根据React js中不同组件的不同api调用在服务器上发送令牌,以验证节点js中的不同路由。我正在React js中创建应用。出于安全考虑,我不想存储在本地存储或cookie中。请告诉我更好的存储方式。

您的安全考虑将适用于任何需要保留令牌的情况

推荐的方法是使用httpOnly cookie,此cookie不能从javascript访问,您不必担心在每个请求中发送令牌,此cookie是当前用于在web应用程序中维护会话的“安全”选项

另一方面,您仍然可以在localStorage中使用JWT,但是是的,在XSS攻击可能被窃取的情况下,但是让我们谈谈安全性,如果有人可以注入JS代码,他们仍然可以使用该会话做所有事情,这是httpOnly cookie的唯一区别,是因为他不能保存凭据以备日后使用,也不能从另一台计算机上使用(当然,这会使黑客的一切变得更困难,但你仍然可以做任何事情)


在使用联邦身份验证的情况下需要JWT,即使是这样,如果JWT被盗,也是因为第三方已经可以访问JS运行时,所以重要的不是“让令牌被盗”,不允许在你的应用程序中运行外部代码。

我们如何将令牌存储在Http cookie中?能否详细说明或提供一些实现细节。事实上,我正在发送JWT以用于身份验证路由。如果您使用cookie,则不使用令牌,因为如果cookie是httpOnly,则无法读取cookie,cookie会被放入浏览器,并且每次您向后端发出请求时,请求都会自动将cookie传递到服务器。另外,如果您使用JWT,它也很好,安全性稍差,但老实说,这并不重要,只需确保请求是通过https发出的。如果有人能偷JWT,那就是威胁,不管你在那一点上是否使用cookies。