Javascript 在何处存储身份验证令牌(前端)以及如何将其放入多个端点的http头中?
我想为移动和webapp编写auth后端,所以我决定使用DRF(Django Rest框架)令牌身份验证 我基本上是通过DRF文档了解后端的,但关于前端实现,它只是说“在每个对API的http请求的头中包含令牌。”Javascript 在何处存储身份验证令牌(前端)以及如何将其放入多个端点的http头中?,javascript,jquery,django,rest,django-rest-framework,Javascript,Jquery,Django,Rest,Django Rest Framework,我想为移动和webapp编写auth后端,所以我决定使用DRF(Django Rest框架)令牌身份验证 我基本上是通过DRF文档了解后端的,但关于前端实现,它只是说“在每个对API的http请求的头中包含令牌。” 所以我的问题是 在AJAX调用中检索令牌时,应将其存储在何处,以便在浏览器刷新时它不会消失? (显然我没有使用cookie,因为手机对cookie的使用有限制) 如何在多个API端点的http头中插入身份验证令牌? 在Stackoverflow的帮助下,我了解了如何在单个http头
所以我的问题是
(显然我没有使用cookie,因为手机对cookie的使用有限制)
$.ajax({
url: "https://www.something.com/random",
type: 'get',
headers: {
token: "t&jdd9HJKHdss7hkjjkhdshgs",
}
});
我想知道我是否必须为每个端点编写这段代码,或者是否有一种方法可以覆盖所有端点而不冗余?您可以使用本地存储和拦截器在单个位置附加令牌。
在堆栈溢出方面也存在类似的问题 在浏览器中存储令牌的方法有三种:
function apiRequest(type, url) {
return $.ajax({
url: url,
type: type,
headers: {
token: localStorage.getItem("token"),
}
});
}
apiRequest("get","https://www.something.com/random").done(function(data) {
console.log(data)
})
有关本地存储的更多信息:尝试将令牌存储在会话存储中:
sessionStorage.setItem('token',value)代码>并使用以下命令检索它:sessionStorage.getItem('token')代码>本地存储呢?localStorage是否更适合于此?如果您希望在浏览器/窗口关闭后仍保留这些值,可以使用localStorage