Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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 如何在React应用程序中存储OAuth2访问令牌?_Javascript_Reactjs_Ecmascript 6_Oauth 2.0 - Fatal编程技术网

Javascript 如何在React应用程序中存储OAuth2访问令牌?

Javascript 如何在React应用程序中存储OAuth2访问令牌?,javascript,reactjs,ecmascript-6,oauth-2.0,Javascript,Reactjs,Ecmascript 6,Oauth 2.0,我对React还不熟悉,希望安全地存储OAuth2访问令牌以调用API。我发现了以下几种选择 将其保存在本地存储/会话存储中(这可能容易受到XSS攻击) 为React应用程序提供后端,并在后端会话中存储访问令牌,并保留会话cookie以标识浏览器会话。然后通过后端进行所有API调用以添加承载头 加密访问令牌并将其存储为cookie。API访问将通过后端进行,在后端加密的cookie将被解密并添加为承载头 什么是最好的解决方案?我会选择第三个选项 Encrypt the access token

我对React还不熟悉,希望安全地存储OAuth2访问令牌以调用API。我发现了以下几种选择

  • 将其保存在本地存储/会话存储中(这可能容易受到XSS攻击)
  • 为React应用程序提供后端,并在后端会话中存储访问令牌,并保留会话cookie以标识浏览器会话。然后通过后端进行所有API调用以添加承载头
  • 加密访问令牌并将其存储为cookie。API访问将通过后端进行,在后端加密的cookie将被解密并添加为承载头

  • 什么是最好的解决方案?

    我会选择第三个选项

    Encrypt the access token and store it as a cookie. API access will be haven through the back-end where encrypted cookie will be decrypted and added as a Bearer header.
    

    与令牌相关的所有内容都必须存储在客户端。我们没有办法,但可以通过向令牌添加加密使其更安全,从而使其更安全。但这种方法将使开发人员必须设置加密和解密算法来处理令牌。您的第二个选择是最佳选择。我们也在这样做。
    为React应用程序提供后端,并在后端会话中存储访问令牌,并保留会话cookie以标识浏览器会话。然后通过后端进行所有API调用以添加承载头。

    我最近发现的最佳解决方案之一是,它将令牌存储在a中的变量中,这样就不会从应用程序上运行的js访问它。它还可以作为代理,我们需要通过worker进行API调用,以便它添加授权头