jwt on node – 客户端如何将令牌传递回服务器

好的。

我想我没有理解基于令牌的validation的基本部分。

我正在使用快递节点,并使用jwt,以防止访问我的网站,如果你还没有login。我可以在login页面上创build一个令牌,我可以发回给客户端,并将其存储在localStorage / Cookie 。 现在,如果用户想要导航到另一个页面,他们将input一个url,并触发获取请求。

在我作为获取请求的一部分加载页面之前,如何从localStorage / cookie访问该令牌并将其传递给服务器。 我的假设是,应该有一种方法将令牌传递给服务器 – 在中间件中截取它 – 如果令牌是合法的,则加载页面;如果令牌未被正确validation,则redirect到login页面。

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

我已经看到引用包括令牌作为请求头(授权承载)的一部分。 我认为这只适用于后,因为如果你能够设置头参数“全球”,那么你为什么要打扰存储在客户端在cookie / localStorage。

所以你可以看到我对工作stream有点困惑。 好像我在某种程度上反对谷物。 任何清晰度将不胜感激。

如果您使用localStoage来存储JWT,那么最简单的方法是通过使用localStorage.getItem('token') (或任何您的令牌名称)从localStorage中首先检索该令牌,然后将它插入请求的头部(无论是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选项来访问参数,就像通常那样。 希望这可以帮助!