在哪里可以将OAuth刷新令牌存储在基于浏览器的应用程序中

时间:2016-08-30 07:28:52

标签: angularjs security oauth local-storage

我将访问令牌和刷新令牌都存储在本地存储中。这是正确的吗?

详细信息:我有一个角度2应用程序。用户加载我的应用程序,然后用我的api验证(用户名,密码)。它们具有访问令牌和刷新令牌。客户端使用访问令牌直到它到期(15分钟),然后在遇到401错误后,使用刷新令牌(6个月的生命周期)来更新访问令牌。

我的设置类似于: Make certain area of bitmap transparent on touch

我已经看到类似的问题和建议在服务器上存储刷新令牌,但我不确定我在我的情况下如何做到这一点(据我所知,客户端需要保持这一点)在本地刷新令牌):http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

1 个答案:

答案 0 :(得分:0)

保护刷新和访问令牌免受恶意访问是一个好主意。这可以来自XSS脚本,浏览器插件等。

对于传统的Web应用程序和浏览器cookie,使用HttpOnlySecure标志可以提供一些保护。 HttpOnly标志告诉浏览器不允许JS访问(仅将cookie发送给具有请求的主机)。 Secure标志告诉浏览器仅在传输安全(TLS)的情况下才发送cookie。

刷新令牌应被视为密码或密钥,因为它可用于请求新的访问令牌。 6个月的寿命是暴露的一大窗口。我会使用更短的时间,并使到期日滑动。例如,几天或几周,并经常刷新两个令牌。

不幸的是,我还不知道如何保护本地存储。希望我能在这方面提供更多帮助。 :-(