Vue-Element-Admin集成自己的接口实现登录跳转


Posted in Vue.js onJune 23, 2021

1、先看一下请求配置文件,看axios.create这个方法,baseURL是基础路由

baseURL:process.env.VUE_APP_BASE_API,

路径:src-utils-request.js

Vue-Element-Admin集成自己的接口实现登录跳转

2、然后再看service.interceptors.request.use,设置token请求头,我后端集成的是jwt,所以请求头是Authentication,如图

config.headers['Authentication'] = getToken()

Vue-Element-Admin集成自己的接口实现登录跳转

3.设置自己的状态码,看service.interceptors.response.use,如图,设置为自己的状态码

Vue-Element-Admin集成自己的接口实现登录跳转

这是我服务器响应的数据,如下,1是正常响应数据

{
    "code": 1,
    "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiJhZG1pbiIsIm5iZiI6MTYyNDE3NTM4MiwiZXhwIjoxNjI0MTc1NDQyLCJpYXQiOjE2MjQxNzUzODJ9.7p8EHMx1b4-yIMRN7Qxden3nZsDmBvevHEf-3oVhFMg",
    "message": "登录成功",
    "state": true
    }
}

4、改.env.production和.env.development里面的api都为空,图只展示.env.production

Vue-Element-Admin集成自己的接口实现登录跳转

5、改基础路由配置,在devServer后面添加如下代码(before这行注释掉,这个用来模拟数据的,用不到),如图

// before: require('./mock/mock-server.js')
    proxy: {
      [process.env.VUE_APP_BASE_API]: {
        target: 'https://xiaoxingbobo.top',
        // target: 'http://192.168.1.119:8081',
        // target: 'http://192.168.1.253:8081',
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    }

Vue-Element-Admin集成自己的接口实现登录跳转

到这里基础路由基本配置好了

6、在src-view-login-index.html文件中,找到Vue-Element-Admin的登录接口,添加如下代码,如图,把官方的请求方式注释掉,this.loginForm是请求参数

this.loading = true
          this.$store.dispatch('user/login', this.loginForm)
            .then(() => {
              this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
              this.loading = false
            })
            .catch((e) => {
              this.tool.log(e)
              this.loading = false
            })

Vue-Element-Admin集成自己的接口实现登录跳转

7、设置用户登录成功后的跳转,登录后必须把token做缓存,不然登录页跳转不了

在src-store-moduls-use.js,如图

Vue-Element-Admin集成自己的接口实现登录跳转

找到action下的login方法,修改代码如下

const actions = {
  // user login
  login({
    commit
  }, userInfo) {
    const {
      accountId,
      password
    } = userInfo
 
    return new Promise((resolve, reject) => {
      console.log('userInfo', userInfo)
      //服务器需要的登录参数
      const payload = {
        accountId: accountId,
        password: password
      }
      //请求服务器
      user.login(payload).then(response => {
        const {
          data
        } = response
        console.log('response', response)
        commit('SET_TOKEN', data.token)
        setToken(data.token)
        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  },

找到getInfo方法,修改代码如下,因为获取用户信息接口没写,所以数据直接写死,根据自己的做调整

getInfo({
    commit,
    state
  }) {
    return new Promise((resolve, reject) => {
      /**
       * 这里请求用户信息和权限,目前接口没做,只注释了,data写死
       * */
      // user.getInfo(state.token).then(response => {
      // const {
      //   data
      // } = response
      const {
        data
      } = {
        data: {
          roles: ['admin'],
          introduction: 'Administrator',
          avatar: 'https://cloud.xiaoxingbobo.top/nongzhibang/20210429/1107491622257669573',
          name: 'administrator'
        }
      }
 
      if (!data) {
        reject('Verification failed, please Login again.')
      }
 
      const {
        roles,
        name,
        avatar,
        introduction,
        token
      } = data
 
      // roles must be a non-empty array
      if (!roles || roles.length <= 0) {
        reject('getInfo: roles must be a non-null array!')
      }
 
      commit('SET_ROLES', roles)
      commit('SET_NAME', name)
      commit('SET_AVATAR', avatar)
      commit('SET_INTRODUCTION', introduction)
      commit('SET_TOKEN', token)
      resolve(data)
      // }).catch(error => {
      //   reject(error)
      // })
    })
  },

这样就搞定了Vue-Element-Admin,可以登录到首页了

Vue-Element-Admin集成自己的接口实现登录跳转

到此这篇关于Vue-Element-Admin集成自己的接口实现登录跳转的文章就介绍到这了,更多相关Vue-Element-Admin登录跳转内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
详解Vue的异步更新实现原理
Dec 22 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
Vue 打包后相对路径的引用问题
Jun 05 Vue.js
Vue + iView实现Excel上传功能的完整代码
Vue vee-validate插件的简单使用
Jun 22 #Vue.js
vue3使用vue-router的完整步骤记录
一篇文章学会Vue中间件管道
Jun 20 #Vue.js
Vue过滤器(filter)实现及应用场景详解
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 #Vue.js
You might like
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
详解js的六大数据类型
2016/12/27 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
自我鉴定范文300字
2013/10/01 职场文书
自考生毕业自我鉴定
2013/10/10 职场文书
英语专业毕业生自我鉴定
2013/11/09 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
高中生的自我评价
2014/03/04 职场文书
会计演讲稿范文
2014/05/23 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
装配出错检讨书
2014/09/23 职场文书
食品药品安全责任书
2015/05/11 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
javaScript Array api梳理
2021/03/31 Javascript
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python