1.登录注册静态组件

在这里插入图片描述
assets这个文件夹放所有的组件公用的静态资源
在这里插入图片描述
在样式当中也可以使用@符号,(src目录的别名),要注意的是在前面你加上~

2.注册业务

这里的验证码,正常来说应该是要后台发送到用户手机上,然后用户再输入的,但是我们没有钱,就简单模拟这个功能就好了。 其次,收集表单的数据
在这里插入图片描述
在这里插入图片描述
获取验证码接口,然后vuex三连环。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后将user合并到大仓库中
在这里插入图片描述
接着点击验证码的时候获取到验证码 并将自动填入到表单中
在这里插入图片描述
在这里插入图片描述
继续收集表单的数据
在这里插入图片描述
创建和调用注册用户的接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.登录业务

收集表单数据
在这里插入图片描述
在这里插入图片描述
创建接口 vuex三连环
在这里插入图片描述
在这里插入图片描述
点击登录事件(这里有个路径问题,需要将他处理,阻止提交表单的默认行为)
在这里插入图片描述
在这里插入图片描述

4.用户携带token获取用户信息

PS: vuex存储数据是非持久化的,一旦刷新之后数据就没有了
用户登录只保存用户的token,添加token校验获取用户登录信息(接口 + vuex三连环)
在这里插入图片描述
在这里插入图片描述
用户登录成功后跳转到 home页面,页面挂载后,派发action获得用户信息
在这里插入图片描述
但是这里有一个问题就是服务器没有带到token的信息,只带了UUID的临时游客id,所以登录了之后,还是显示未登录,因此需要在请求拦截器中的请求头中添加token的信息
在这里插入图片描述
在这里插入图片描述
这样就添加了登录用户的token, 我们也是通过这个唯一的token来获得用户信息
在这里插入图片描述
将用户信息显示在Header中,很简单,v-if 即可
Header中获得userInfo里面的name属性
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述

5.登录业务中存在的问题

问题一:当页面点击重新刷新的时候,用户名又不显示了,因为再一次刷新的时候没有派发userLogin这个action,所以token无了,vuex不是持续化存储的
在这里插入图片描述
解决办法:使用html5新增的本地存储和会话存储
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题二:当在别的页面,比如说 detail详情页面的时候再刷新,用户的登录信息就没有了,因为detail压面里没有派发action(getUserInfo)。
在这里插入图片描述
在这里插入图片描述
刷新之后又无了

问题三:已经登陆过了,然而手动输入login还能带登录页面进行重新登录
在这里插入图片描述
解决上面问题二和问题三,需要用到路由守卫

导航守卫 (通俗理解)
导航:表示路由正在发生改变。进行路由跳转
守卫:你把它当成 , 一个城市的护卫

全局守卫:
举例子:城市[市长、县长、村长],城市大门守卫全都要排查

路由独享守卫:
举例子:城市[市长、县长、村长],是相应的[市长、县长、村长]路上守卫

组件内守卫: 我要去市长家
举例子:我已经到到市长家外面了(进入了) (家门口)守卫

解决:
在这里插入图片描述
不需要再在这个组件里派发action了
在这里插入图片描述

6.退出登录

绑定事件
在这里插入图片描述在这里插入图片描述
清楚本地token + 调用接口 + vuex三连环
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对5.登录业务中存在的问题 最后的catch做补充
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐