我刚学会如何使用JSON webtoken。我已经能够在登录时生成JSON webtoken,并设置中间件来验证我的令牌并保护JSON验证中间件以下的路由。如何在我的所有请求查询字符串中包含JSON webtoken
每次尝试访问我的受保护路由时,我都会手动添加令牌:?token=gwt3r7r....
,以便结束我的GET请求。 我知道这不应该是一个真正的应用程序的情况。我希望这是动态完成的。
这是如何动态完成的?
我刚学会如何使用JSON webtoken。我已经能够在登录时生成JSON webtoken,并设置中间件来验证我的令牌并保护JSON验证中间件以下的路由。如何在我的所有请求查询字符串中包含JSON webtoken
每次尝试访问我的受保护路由时,我都会手动添加令牌:?token=gwt3r7r....
,以便结束我的GET请求。 我知道这不应该是一个真正的应用程序的情况。我希望这是动态完成的。
这是如何动态完成的?
其实,在url结尾加入jwt token不是好习惯。你应该将它作为标题传递。
你可以做的是,你可以把它作为Authorization
头和节点JS方面,你可以得到它,如果你ipmlement以下行:
var token = req.headers['Authorization']
提示:不要” t使用查询参数发送令牌,相反,您应该为此任务使用HTTP标头。
从使用您的nodejs api的前端应用程序,您可以使用软件包(如axios)向您的服务器发送请求。
,并在用户成功登录,您可以使用
axios.defaults.headers.common['Authorization'] = token;
设置默认令牌未来的每一个请求,你让采用这种封装形式。
在邮递员,您只需按ctrl + s
保存与令牌一起将来使用要求。对于标题,它们有Header presets
。
您可以将常用标题一起保存在标题预设中。在标题标签下,您可以通过从右侧的预设下拉列表中选择“管理预设”来为您的请求添加标题预设。
您可以参考this link做进一步的了解究竟在如何使用邮递员充分发挥其潜力。
将标记放入URL中并不是一种好的做法。
将标记放置为Authorization
标头会更好,但如果在发送HTTP请求之前每次都必须组装这样的标头,那将很繁琐。此外,这种解决方案仅适用于Ajax请求,当访问新的URL/Page(页面保护)时它不起作用 - 如果用户手动访问/secure/my-account
页面会发生什么情况?在页面重定向之前没有机会定义请求头。
要自动在您的所有HTTP请求JWT令牌,你可以把它作为cookie时登录成功:
res.cookie('token', newToken);
这种方式,token
的Cookie通过Set-Cookie
响应头保存在浏览器和将自动发送到服务器。
在服务器,以获得从每个HTTP请求令牌,以下功能可用于:
var getTokenFromRequest = function(req) {
if (req.cookies.token) {
return req.cookies.token;
}
return null;
};
**提示:**不使用查询参数发送令牌,而是使用HTTP报头,如'授权:' –
RaghavGarg
你如何向服务器发送请求? – RaghavGarg
是的,我正在向服务器发送请求。 – OlatunjiYSO