【发布时间】:2020-01-13 22:36:19
【问题描述】:
所以我创建了 Nodejs api,直到现在我都在使用 postman 访问它。但现在我想创建forntend。 在 api 中,当用户登录时,他将获得一个 JWT 令牌,当访问受保护的路由时,他需要发送 JWT 令牌。我正在使用邮递员在标头中发送令牌。 我怎样才能通过前端做到这一点?
【问题讨论】:
所以我创建了 Nodejs api,直到现在我都在使用 postman 访问它。但现在我想创建forntend。 在 api 中,当用户登录时,他将获得一个 JWT 令牌,当访问受保护的路由时,他需要发送 JWT 令牌。我正在使用邮递员在标头中发送令牌。 我怎样才能通过前端做到这一点?
【问题讨论】:
登录成功时将令牌存储在本地存储localStorage.getItem('token')
然后通过从 localStorage 获取令牌将令牌传递给 header 中的 api
【讨论】:
在登录函数内部,成功后,使用带有jwt参数的回调函数调用localStorage.setItem('userToken', jwt)。这会将您的 jwt 放入用户浏览器的本地存储中。然后,如果您使用例如 axios 进行后端调用,您应该添加拦截器,该拦截器也将在每个请求上发送 jwt。像这样的
axios.interceptors.request.use(async () => {
request.headers.common.Authorization = `bearer ${window.localStorage.getItem('userToken')}`;
return request;
}, err => Promise.reject(err));
所以,它不会完全像这样,而是适合你需要的类似的东西
【讨论】: