Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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 如何仅从web浏览器中安全地使用REST API?_Javascript_Rest_Authentication_Oauth_Client Side - Fatal编程技术网

Javascript 如何仅从web浏览器中安全地使用REST API?

Javascript 如何仅从web浏览器中安全地使用REST API?,javascript,rest,authentication,oauth,client-side,Javascript,Rest,Authentication,Oauth,Client Side,我正试图找到一种在浏览器中完全安全地与OAuth草案v2-23 API交互的方法。在浏览器中进行身份验证存在明显的安全问题,因为身份验证令牌和其他密钥在浏览器中的某个位置公开 是否有一种安全的方法隐藏这些密钥,或者我仅限于创建一个服务器端解决方案来跟踪这些密钥?在使用我的应用程序的移动版本时,我遇到了这个问题,因为正常的登录身份验证无法工作 我想出的解决办法是使用两个键。当用户登录时,最初会向他们提供令牌。客户端已经将令牌保存为应用程序中的变量。您可以生成任意字符串,我通常生成32长度的base

我正试图找到一种在浏览器中完全安全地与OAuth草案v2-23 API交互的方法。在浏览器中进行身份验证存在明显的安全问题,因为身份验证令牌和其他密钥在浏览器中的某个位置公开


是否有一种安全的方法隐藏这些密钥,或者我仅限于创建一个服务器端解决方案来跟踪这些密钥?

在使用我的应用程序的移动版本时,我遇到了这个问题,因为正常的登录身份验证无法工作

我想出的解决办法是使用两个键。当用户登录时,最初会向他们提供令牌。客户端已经将令牌保存为应用程序中的变量。您可以生成任意字符串,我通常生成32长度的base64密钥

这是一个基本的游戏,当他们从GET/PUT/etc调用服务器时会发生什么

使用用户令牌和服务器令牌作为参数发送请求。 服务器令牌与经过盐析和哈希处理的服务器令牌进行检查。如果服务器令牌正常,则转至步骤3,否则在此处拒绝请求。 根据分配给所述用户的用户令牌检查用户令牌,所述用户令牌经过盐析和散列,并确保其存在。如果良好,则转至步骤4,否则在此处拒绝请求。 执行请求GET/PUT/DEL/POST等。 长话短说,我保留了一个用户令牌的salt和hash版本,这对用户是唯一的,服务器令牌对服务器上的每个用户都是相同的,反salt和反hash是在后端完成的

我希望这有点道理。它可能不是标准或完全正确,但它是我所理解的token auth,这对我很有用


如果其他人认为我的推理有问题,请插话告诉我。

我的问题是我无法控制后端的工作方式。那么。。。这是个问题。现在我决定在后端使用一个服务器与RESTAPI交互,所以不要担心。如果你找到了一个解决方案,很好,但是不要花太多精力去寻找。