我正在尝试构建一个简单的项目,使用户可以在登录后从api搜索电影并将选定的电影添加到他们的“ / movies”页面。 我正在使用Nodejs,mongodb,express表示后端,使用vanilla javascript表示前端。
当用户注册或登录后,我将创建一个JWT令牌并将该令牌添加到数据库中。 我的目标是将他们重定向到他们的主页,即“ / user / movies”
我的问题是,重新访问后,我们仍如何与用户保持身份验证,我们如何才能达到先前创建的令牌?
使用邮递员时,我可以从数据库中手动检查令牌,并在标题中输入授权令牌,然后发送发布请求以验证用户。
但是在浏览器中,我如何到达以前创建的令牌以再次验证用户?
我尝试了 localStorage ,但是,为了将令牌保存到
localStorage,我需要从数据库中获取它,但是您不能
更改后端的localStorage。
我尝试了带有仅http 标志的 cookies ,但是如何到达 来自前端的令牌,因为仅使用http,因此禁止使用javascript
为了从前端获取JWT令牌,我有什么选择,以便即使用户关闭网站并稍后返回,我仍可以使用户保持身份验证。 (不足以使令牌过期)
我对身份验证的工作方式还很陌生。如果我犯了逻辑错误,请告诉我。
答案 0 :(得分:0)
答案 1 :(得分:0)
您需要发送JWT令牌以及其他数据,作为登录API的响应。在前端收到响应后,只需将JWT令牌通过“ localStorage.setItem(“ token”,response.data.token)存储到localStorage。
现在,即使用户关闭浏览器并再次出现,您仍然可以始终引用localStorage.getItem(“ token”)来获取令牌。用户注销时,请不要忘记通过localStorage.removeItem(“ token”)清除此localStoage。
另外请注意,在创建JWT令牌期间不要提供任何到期时间,否则即使将其本地存储在localStorage中,它也将在服务器端到期并给出“禁止的错误”