当前位置 博文首页 > 文章内容

    Abp Vnext vue-admin-template(一用户登录)

    作者: 栏目:未分类 时间:2020-07-05 11:03:04

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    Git地址https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md

    官方文档https://panjiachen.github.io/vue-element-admin-site/zh/guide/

    官方注明:本项目的定位是后台集成方案,不太适合当基础模板来进行二次开发。所以我选择的是基础版

    需要修改配置文件.env.development把VUE_APP_BASE_API = '/dev-api'修改为VUE_APP_BASE_API = '' 

    修改Axios访问基址改成本地Abp API访问地址baseURL: process.env.VUE_APP_BASE_API没找到在哪里修改所以直接硬修改了

    根据手摸手,带你用vue撸后台 系列二(登录权限篇)介绍,只是为了拿到Token,所以我只取得Token保存到cookie中,不知有没有其他需要设置的地方,如果您发现了,请也跟我说下,谢谢

    views\login\index.vue是登录入口,这里只摘主要代码贴上来讲述登录过程,不需要任何修改

    登录对象定义,为了测试方便直接写上了用户名及密码

    loginForm: {
      username: 'admin',
      password: '1q2w3E*'
    }

    登录方法

    handleLogin() {
        this.$refs.loginForm.validate(valid = >{
            if (valid) {
                this.loading = true this.$store.dispatch('user/login', this.loginForm).then(() = >{
                    this.$router.push({
                        path: this.redirect || '/'
                    }) this.loading = false
                }).
                catch(() = >{
                    this.loading = false
                })
            } else {
                console.log('error submit!!') return false
            }
        })
    }

    先测试一下访问基址对不对

    发现基址对了,也把api去掉了,但中间多了/vue-admin-template,去下图mock目录中的user.js修改为真实存在的接口

    访问地址对了,开始进入登陆方法,把下图路径的原来登陆方法修改下边的登录方法,之前登录方法用的Json传输,我们需要用qs序列化一下,并添加了一些abp获取token需要的字段

    ContractedBlock.gifExpandedBlockStart.gif
    login({ commit }, userInfo) {
        var qs = require('qs')
        const { username, password } = userInfo
        return new Promise((resolve, reject) => {
          login(qs.stringify({
            grant_type: 'password',
            scope: 'Mall',
            username: username.trim(),
            password: password,
            client_id: 'Mall_App',
            client_secret: '1q2w3e*'
          })).then(response => {
            const { data } = response
            commit('SET_TOKEN', 'Bearer ' + data.access_token)
            setToken('Bearer ' + data.access_token)
            resolve()
          }).catch(error => {
            console.log(error)
            reject(error)
          })
        })
      },
    修改后的代码

    请将get user info、user logout、remove token三个方法暂时注释一下,还没修改到不然一堆报错,修改到后再取消注释

    进入下图路径,修改我们请求访问方法,

    service.interceptors.response.use方法中的内容全部删除,我们目前只需要判断状态码200就作为正确获得token并返回调用

    service.interceptors.response.use(
      response => {
        const res = response
        if (res.status === 200) {
          return res
        }
    
        return Promise.reject(new Error(res.message || 'Error'))
      }

     发现token名不对,不是我们需要的,把下图常亮修改为我们需要的access_token

    登录测试正常,并成功保存token及跳转后台主页

    接下来还有很多事要做,上边注释掉的三个方法需要实现(获取用户信息,退出登录,清除token),但还需要用户管理,用户组,权限管理等

    网上也没找到相关文章,自己Vue基础也不好,简直一波三折才搞明白怎么登陆,如果写的不对的,请指正,谢谢