Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 关于oauth2以及访问令牌和刷新令牌应该存储在哪里的混淆_Javascript_Backbone.js_Express_Oauth 2.0_Oauth2orize - Fatal编程技术网

Javascript 关于oauth2以及访问令牌和刷新令牌应该存储在哪里的混淆

Javascript 关于oauth2以及访问令牌和刷新令牌应该存储在哪里的混淆,javascript,backbone.js,express,oauth-2.0,oauth2orize,Javascript,Backbone.js,Express,Oauth 2.0,Oauth2orize,如果您能更深入地了解如何保护此设置,那就太好了: Node.js/ExpressJS/Oauth2orize受oauth2保护的REST API,托管在API.domain.com 通过Node.js/ExpressJS服务器托管在domain.com上的Backbone.js应用程序 目前发生了以下情况: 1-用户在浏览器中访问应用程序,提供用户名和密码,并将其发布到包装器(domain.com/login) 2-包装器使用客户机id和客户机密码扩充用户名和密码,并将其与用户名和密码一起传

如果您能更深入地了解如何保护此设置,那就太好了:

  • Node.js/ExpressJS/Oauth2orize受oauth2保护的REST API,托管在
    API.domain.com

  • 通过Node.js/ExpressJS服务器托管在
    domain.com
    上的Backbone.js应用程序

目前发生了以下情况:

1-用户在浏览器中访问应用程序,提供用户名和密码,并将其发布到包装器(
domain.com/login

2-包装器使用客户机id和客户机密码扩充用户名和密码,并将其与用户名和密码一起传递到
api.domain.com/oauth/token
。这样做,而不仅仅是直接处理javascript应用程序中的api,以确保客户端id和客户端机密的安全。此过程仅用于身份验证,一旦存在令牌,JS客户端将直接与api通信

3-api.domain.com/oauth/token检查用户和密码凭据,如果凭据通过,则发出刷新令牌和访问令牌,或者返回401

4-令牌响应(包括刷新令牌和访问令牌)作为对
domain.com/login
请求的响应返回给javascript应用程序。目前,JavaScript客户端使用刷新令牌处理设置授权头和获取新的访问令牌

我有几个问题:

首先,我对访问\u令牌和刷新\u令牌感到困惑,我怀疑我根本不应该将刷新\u令牌传递给浏览器-是否应该将其缓存在代理上,并通过代理执行刷新?或者将refresh_令牌传递给Javascript应用程序是否合适

在浏览器中缓存access\u令牌或refresh\u令牌可以吗?例如cookies或本地存储。如果是,这是如何安全的?如果不是,用户在刷新浏览器时不需要重新验证吗


如果有人能说明在包装服务器和JavaScript应用程序中处理刷新令牌和访问令牌的“正确”步骤,那将不胜感激。

您尝试过这个链接吗?它应该足够有趣地回答您的大多数问题,虽然我还没有看到,但它确实表明了我最终采用的方法-包装服务器在httponly cookie中提供的加密刷新令牌以及未加密的访问令牌,客户端通过httponly加密cookie从包装器服务器请求一个新的访问令牌,效果非常好。