加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
myshow项目梳理.txt 2.28 KB
一键复制 编辑 原始数据 按行查看 历史
李季1 提交于 2021-05-02 17:51 . 今天提交了
功能/流程:vue+elememtui
****在请求接口数据之前必须按照文档的要求:"需要授权的 API ,必须在请求头中使用 `Authorization` 字段提供 `token` 令牌"(login的时候保存的token令牌)
来设置axios请求拦截器:(请求接口数据,服务器会判断Authorization是否符合要求,不符合就会驳回此次请求)
在mian.js中: axios.interceptors.request.use(config=>{ //config就是请求对象
config.headers.Authorization=window.sessionStorage.getItem('token')
//最后必须retrun
return config
})
1.login.vue 登录功能:
1.1: // 路由重定向 在根路径时跳转login
{path:'/',redirect:'login'}
1.2: 表单数据验证:username password
1.3: 重置按钮 (使用了ref=’loginFromRef‘的实例对象的resetFields方法)
this.$refs.loginFromRef.resetFields()
1.4:登录按钮登陆前的预验证(vavliddate()方法)
this.$refs.loginFromRef.validate(bool=>{
if(!bool) return
})
1.5:根据预验证的结果是否发送请求
发送请求 :this.$axios.post('/login',this.login_form) //login_form参数是对象{用户名 密码}
###得到的结果是个promise,用async await解决
判断返回数据的状态码是不是200,相应相应的消息提示(this.$message({message:'登录失败',type:'err'}))
1.6:登录成功后保存到token
window.sessionStorage.setItem('token',res.data.data.token) //键:'token' ,值:res.data.data.token
1.7:最后跳转主页面/home
this.$router.push('/home')
2.路由守卫控制访问权限:(在router页面配置)
router.beforeEach((to,from,next)=>{
//to:将要访问的路径;from:从哪个路径来;
//next是一个函数,表示发行: next()放行 next('/login') 强制跳转'/login'
if(to.path==='/login'){return next()} //如果去登录页,直接放行
let tokenStr=window.sessionStorage.getItem('token')
if(!tokenStr){return next('/login')}else{next()} //没有token就是没有登陆,就跳转登录页
})
3.退出登录功能:
//清空token 跳转/login
window.sessionStorage.clear()
this.$router.push('/login')
主页面:/home
1.左侧菜单栏 数据获取
外循环显示一级菜单,内循环显示二级子菜单
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化