hsiangleev / element-plus-admin

基于vite+ts+elementPlus

Home Page:https://element-plus-admin.hsianglee.cn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

提一个小意见

answer-zf opened this issue · comments

原有的业务逻辑我分析是这样的:登录时 项目 会在 localStorage 中使用 'token'做 标识,存储服务器返回的token,
但是当 localStorage 中以存在 'token'这个键,但不符合你设计的token值的规则,在页面首次登录时做的 路由守卫就会报错。原因是 setLocal, useLocal, getLocal 这三个工具没有考虑到 localstrorage 已经存在一个 'token'的键,值为‘384819cb-f70c-46af-b6f3-5e19604292a1’,不符合你这边的规则。
我 用了一个最懒的方式做处理的 就是 登录是 存储 localstrorage 使用 ‘token_盐’ 的方式命名键,就不会跟浏览器可能存在的 一些键冲突。
我是用你的核心代码迁移到vue-cli中做了一个项目后 两个项目切换的时候才发现的。同时感谢你的分享

@answer-zf
因为我这个是纯前端的代码,没有使用服务器,所以在前台就给模拟的token设置了一个有效时间,正常情况下校验token的规则是在后端处理的,校验失败的时候前端通过返回码来做退出登录的处理,前端可以不用setLocal, useLocal, getLocal给token设置有效期

正常的逻辑应该是这种

  1. 在登陆完成之后,后台返回了token,token的规则是无所谓的
  2. 前台拿到token之后,保存到localstrorage中,前端可以不用设置有效期
  3. 前端每次发送请求的时候都会把这个token带到header中
  4. 后台每次处理请求之前需要先校验token是否有效
  5. 如果token失效的返回401状态码给前端,前端在axios拦截取里面做判断并退出登录

@hsiangleev
哦 可能我没太注意这个纯前端的问题。

其实也是我的这个项目属于给后台做内部测试以及给客户的simple,很多接口没有让后台写,后台就一个登录接口就完事了,路由和权限都是死数据。所以我也没走正规的逻辑。