Vue中关于token与后端不对应的问题

Vue中token验证踩坑

最近在修改前人留下的代码,修改中无意发现当我向后端发送请求提取数据时,后端提示我有关token的错误。问题所在和解决方式在此记录一笔。

问题初步定位在我所修改的系统的登陆部分和向后台发送请求的api部分,在登陆时,后端返回给了前端一个token,前端将其储存在了sessionStorage中,以供请求拦截器使用
这里是login当中将token储存进sessionStorage:这里是请求拦截器中将请求头带上token:

当我退出登陆,紧接着再次登陆另一账号时,会出现后端所接收到前端发送的token与redis中的token不一致的问题,最后发现前端传的token是上一个账号所获得的token。

原来是我的请求拦截器中的问题,let name = sessionStorage.getItem(‘name’)和const token =sessionStorage.getItem(name)这两句只在程序运行时执行一次,而不是伴随着每次拦截器的工作进行实行,导致了登陆其他账号后,token还是第一次登陆的账号的。将其改正为在这里插入图片描述
问题解决。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue前端和Java后端实现登录拦截并使用session,以下是详细的步骤: 1. 前端实现: 在Vue前端应用,需要创建一个拦截器来拦截所有的请求,在请求头添加token信息。在登录成功后,将后端返回的token存储在浏览器的本地存储(localStorage),每次发送请求时从本地存储获取token并添加到请求头,用于后端进行认证。 2. 后端实现: 在Java后端,需要创建一个拦截器来验证请求头token信息,以确保用户登录有效。在用户登录验证成功后,生成一个session对象,并将其存储在服务器端(如Redis、数据库等)。 当用户发送请求时,后端拦截器首先从请求头获取token信息,然后根据token从存储的session查找对应的用户信息。如果找到用户信息,说明用户已登录,请求继续进行;如果未找到用户信息,说明用户未登录或登录已过期,需要返回相应的错误信息给前端。 3. 登录过程: 前端向后端发送登录请求,后端验证用户的用户名和密码是否正确,如果正确则生成一个唯一的token,并将其返回给前端。前端收到token后将其存储在本地存储。后续的请求均需要在请求头携带该token。 4. 登出过程: 当用户点击退出登录按钮时,前端移除本地存储token,并向后端发送一个请求来销毁后端存储的session对象。 综上所述,通过前端拦截器和后端拦截器的配合,在前端发送请求时添加token信息,并在后端验证token信息来实现登录拦截。通过session机制,后端可以在多次请求之间保存用户的登录状态,确保用户的合法性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值