weixin_41359495
H_Franky
采纳率23.3%
2021-01-04 13:51

vue jwt作登录验证存储问题

php后端,vue前端,axios的async/await方式请求接口,用后端返回的jwt做登录验证,token应该存储在cookie还是localStorage还是sessionStorage?

网上看了一下各有优缺点,现在的问题是:
1、后端返回的jwt有效时1小时,需要刷新token,我改如何判断它是否过期,用新的token替换旧的;

2、要有记住密码这个功能,用户账号密码的安全问题如何保证;

3、在用户关闭网页或者浏览器后又要退出登录;

这三个需求搞得有点迷,感觉用哪个存token都不太行,请教一下各位,这种情况应该选择哪个?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

14条回答

  • Bombas 热心市民周某 4月前

    一般存cookie,发送http请求时cookie会被自动携带过去。至于刷新消失这个不用担心,cookie是可以设置有效时间的,一般不设置的话会被认为是会话级cookie,在关闭页面后消失。可以设置expires或者是max-age(一般用这个)来限制cookie的有效时间。一般cookie消失的原因除了了有效期到了之外,还有是因为有的浏览器有数量和大小限制,超过的话会被删除(不同浏览器删除机制不同,有的是删除最老的,也有随即删除或者其他的)

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    好吧

    点赞 评论 复制链接分享
  • Bombas 热心市民周某 4月前

    我一般都直接放到cookie设置个httponly。如果还要纠结安全的话我感觉是设计过渡了。

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    那怎么处理?我看了一下,很多网站都是存cookie的,他们怎么做到安全?

    点赞 评论 复制链接分享
  • Bombas 热心市民周某 4月前

    如果你的电脑真的时可以被别人操作到可以随便拿你的cookie的话,做免登录其实也不靠谱。拿走你的token在别的电脑里验证一样能登录。别人能拿你cookie就证明你的电脑已经是不安全的了

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    那感觉还是免登陆靠谱点。。。

    点赞 评论 复制链接分享
  • Bombas 热心市民周某 4月前

    如果会的话哪怕不暴露,别人拿你的cookie也可以直接登录

    点赞 评论 复制链接分享
  • Bombas 热心市民周某 4月前

    如果直接存的话会把数据暴露在外面,可以考虑加密,但是你的电脑是会被别人操作么

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    需要手动点这种,存cookie不会直接暴露账号密码吗?

    点赞 评论 复制链接分享
  • Bombas 热心市民周某 4月前

    如果是免登录而且你还用jwt的话这些信息可以放到你的token里,这样基本是安全的,除非有你的私钥不然是得不到你的账号密码。如果是那种进到画面会把登录信息展示在登录框里需要你手动点击登录的,在cookie存就好。

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    如果要实现记住密码这个功能,账号密码又存哪里?如何保证安全?@热心市民周某

    点赞 评论 复制链接分享
  • qq_40971483 暖光_& 4月前

    刷新一下,怎么可能 会没呢?cookie只有有效期到了,才没吧,或者主动清除

    点赞 评论 复制链接分享
  • weixin_41359495 H_Franky 4月前

    那一刷新,token不就没了?又要重新登录?

    点赞 评论 复制链接分享
  • qq_40971483 暖光_& 4月前

    建议存到cookie,有效期设置比一小时短一点,比如55分钟,防止误差,然后请求前判断token是否失效,失效的话异步刷新token

    点赞 评论 复制链接分享

相关推荐