gpt4 book ai didi

node.js - Node 上的 jwt - 客户端如何将 token 传回服务器

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:14 24 4
gpt4 key购买 nike

好的。

我认为我未能理解基于 token 的身份验证的基本部分。

我正在使用带有express的 Node ,并使用jwt来阻止您尚未登录时访问我的网站。我可以在登录页面上创建一个 token ,然后我可以将其发送回客户端并将其存储在本地存储/cookie。现在,如果用户想要导航到另一个页面,他们将输入 URL 并触发 get 请求。

在作为 get 请求的一部分加载页面之前,如何从 localStorage/cookie 访问该 token 并将其传递到服务器。我的假设是,应该有一种方法将 token 传递到服务器 - 在中间件中拦截它 - 如果 token 合法则加载页面,或者如果 token 未正确验证则重定向到登录页面。

在发布请求时,这会简单得多,因为您可以在页面加载后获取 token 并将其作为 ajax 调用的一部分传递。

我看到过将 token 包含在请求 header (授权持有者)中的引用。我认为这仅适用于发布,因为如果您能够“全局”设置 header 参数,那么您为什么要费心将其存储在客户端的 cookie/localStorage 中。

正如你所看到的,我对工作流程有点困惑。似乎我在某种程度上违背了原则。任何澄清将不胜感激。

最佳答案

如果您使用 localStoage 来存储 JWT,那么将其传递到服务器的最简单方法是首先使用 localStorage.getItem(' 从 localStorage 检索 token token') (或任何您的 token 名称),然后将其插入请求的 header (GET 或 POST/PUT/DELETE)。根据您用来处理客户端上的 http 请求的库,有不同的方法。例如,在 jQuery 中,您可以在 AJAX 请求中执行以下操作:

$.ajax({
url: API_URL + "/endpoint",
method: "GET",
beforeSend: function(request){
request.setRequestHeader("Authorization", "BEARER " + localStorage.getItem('token'));
}
})

此后,在服务器端只需像平常一样通过访问 request.header 选项来访问参数。希望这有帮助!

关于node.js - Node 上的 jwt - 客户端如何将 token 传回服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com