我正在为学校的应用程序登录系统。我可以注册一个保存到我的azure documentDB的用户。然后我可以和用户一起登录。但它(令牌)永远不会被保存,以便我可以访问令牌..
登录脚本如下所示:
var signin = function() {
var tokenUrl = "http://localhost:15746/Token";
var loginData = $("#userSignup").serialize();
loginData = loginData + "&grant_type=password";
$.post(tokenUrl, loginData).then(navigateToEvent);
return false;
}
$("#signup").click(signin);
我怎么能存储令牌?在本地存储?怎么样?
提前致谢。
答案 0 :(得分:20)
要在本地存储中保存字符串,请使用
window.localStorage.setItem(key, value);
您可以稍后通过以下方式获取值:
window.localStorage.getItem(key);
答案 1 :(得分:3)
不要在本地存储中保存令牌。这不是一个好的风格,因为你向攻击者敞开心扉。我在搜索中找到了这个链接:https://medium.com/@benjamin.botto/secure-access-token-storage-with-single-page-applications-part-1-9536b0021321。
这是页面内容的一部分:
“建议不要在本地存储中存储任何敏感信息。” -OWASP备忘单
“不要将令牌存储在本地存储中。” -Auth0:在哪里存储令牌
“您对 CSRF 是安全的,但您已经向更大的攻击媒介敞开了大门……XSS。” Okta:JWT 很烂
“不要将 [JWT] 存储在本地存储(或会话存储)中。” LogRocket:JWT 身份验证最佳实践
“最好避免让 JavaScript 代码看到访问令牌。”适用于基于浏览器的应用的 OAuth 2.0:当前最佳实践