多路径的 JS Cookie
JS Cookie for multiple paths
我 运行 遇到了一个愚蠢的问题,但似乎找不到解决方案。
用户登录我的网络应用程序后,我会创建一个带有 JWT 令牌的 cookie,这样我就可以在每次请求时将其发送到我的后端以验证 token/cookie。
if (idToken) {
document.cookie = "token=" + idToken;
window.location.assign('/dashboard');
}
这对所有不分页子路由的页面都非常有效,例如:(“/dashboard”、“/help”、“/etc”)。
问题:
现在我有一个子路线是:www.domain.com/abc/xyz
当请求转到该路由 /abc/xyz 时,我看到在浏览器中创建了两个 cookie,一个在 /(根路径)上,另一个在 /abc 路径上。这引起了我的麻烦,因为我的后端检索当前路径的 requests.cookie /abc,最终我得到一个无效的 cookie。
我该如何正确处理这个问题?我试图用根路径设置一个“全局”cookie,但它似乎对我不起作用:
document.cookie = "token=" + idToken + ";path=/";
According to MDN,指定路径path=/
确实会匹配所有子目录。因此,您建议的解决方案应该有效,并且您可能只需要清理 cookie 以确保以前的 cookie 不会干扰。
根据 standard:
Cookies with longer paths are listed before cookies with
shorter paths.
如果您在 /abc
上的旧 cookie 仍然存在,它将优先于新的正确 cookie。
转义(旁注)
根据您的 idToken
来自哪里,在设置 cookie 之前将其转义可能是个好主意。如果您的令牌出于某种原因包含 ;
,那么这不会破坏您的网站。
document.cookie = "token=" + encodeURIComponent(idToken) + ";path=/";
我 运行 遇到了一个愚蠢的问题,但似乎找不到解决方案。
用户登录我的网络应用程序后,我会创建一个带有 JWT 令牌的 cookie,这样我就可以在每次请求时将其发送到我的后端以验证 token/cookie。
if (idToken) {
document.cookie = "token=" + idToken;
window.location.assign('/dashboard');
}
这对所有不分页子路由的页面都非常有效,例如:(“/dashboard”、“/help”、“/etc”)。
问题:
现在我有一个子路线是:www.domain.com/abc/xyz
当请求转到该路由 /abc/xyz 时,我看到在浏览器中创建了两个 cookie,一个在 /(根路径)上,另一个在 /abc 路径上。这引起了我的麻烦,因为我的后端检索当前路径的 requests.cookie /abc,最终我得到一个无效的 cookie。
我该如何正确处理这个问题?我试图用根路径设置一个“全局”cookie,但它似乎对我不起作用:
document.cookie = "token=" + idToken + ";path=/";
According to MDN,指定路径path=/
确实会匹配所有子目录。因此,您建议的解决方案应该有效,并且您可能只需要清理 cookie 以确保以前的 cookie 不会干扰。
根据 standard:
Cookies with longer paths are listed before cookies with shorter paths.
如果您在 /abc
上的旧 cookie 仍然存在,它将优先于新的正确 cookie。
转义(旁注)
根据您的 idToken
来自哪里,在设置 cookie 之前将其转义可能是个好主意。如果您的令牌出于某种原因包含 ;
,那么这不会破坏您的网站。
document.cookie = "token=" + encodeURIComponent(idToken) + ";path=/";