关于vue-element-admin登录流程

最近写了一个基于 花裤衩 大佬的模板 Vue-element-admin
关于这个Vue-element-admin中的流程可能对于新的同学不是很友好,所以我准备写一下详细的流程图
首先在https://panjiachen.github.io/vue-element-admin-site/zh/guide/里面下载自己所需要的模板

我们主要说一下我们怎么改成自己的接口数据

我们找到login页面,如果对于路由这一方面不太了解的小伙伴建议看一下手册哦~
路由文件在src/router/index 文件夹下面
然后我们在找到路由里面login的路径,在views/login/index.vue
我们打开之后看到一个方法是 handleLogin()

 handleLogin() {
  //这个地方我的请求参数比较多但是主要用到的还是用户名和密码,其余的是后端要求的
      var data = {
          grant_type: 'password',
          username:this.loginForm.username,
          password:this.loginForm.password,
          ClientId:1,
      }
      this.$refs.loginForm.validate(valid => {
          if (valid) {
              this.loading = true
              this.$store.dispatch('user/login', data).then(() => {
                  this.$router.push({ path: this.redirect || '/' })
                  this.loading = false
                  console.log('请求返回值',data)
              }).catch(() => {
                  this.loading = false
              })
          } else {
              console.log('error submit!!')
              return false
          }
      })
    }

然后是关于验证方法的地方,很多人疑问,哎我明明输入了账号为什么还是提示空那
这就到了验证阶段了还是在login页面里面,你们找一下在data里面就有哦~我根据自己的需求改了一下

const validateUsername = (rule, value, callback) => {
      if (value=='') {
        callback(new Error('请输入用户名'))
      } else {
        callback()
      }
    }
    const validatePassword = (rule, value, callback) => {
        if(value ==''){
            callback(new Error('请输入密码'))
        } else if (value.length < 6) {
        callback(new Error('密码长度最低位6位'))
      } else {
        callback()
      }
    }

//然后咱们来详细看一下login的请求方法

this.$store.dispatch('user/login', data).then(() => {

//这一步是告诉你我调用了store下面的user里面的login方法,然后我们找到store/modules/user

const actions = {
  // user login
  login({ commit }, userInfo) {
    var datas= qs.stringify(userInfo)
    return new Promise((resolve, reject) => {
      //发送了网络请求,进行了登录操作
      login(datas).then(response => {
        // debugger;
        console.log('这个是请求参数',response)
        var data  = response
        commit('SET_TOKEN', data.access_token)
        setToken(data.access_token)
        resolve(data.access_token)
      }).catch(error => {
        console.log(error)
        reject(error)
      })
    })
  },

你以为到这里请求就结束了吗?不可能,来让我们继续往下找

//我们看到这个页面有一个login方法,那么就说明我们登录请求放在了这里
import { login, logout, getInfo } from '@/api/user'

可以看到,所有的接口都来自api ,根据花裤衩大佬的模式,直接api目录下面找user就行

import request from '@/utils/request'
export function login(data) {
  return request({
    url: 'token',
    method: 'post',
    data
  })
}

你以为又结束了???怎么可能你看那么import是干啥的对吧,咱们接着往下找在 /utils/request

image.png

request是干嘛的?

request是封装好的axios,主要用于发送网络请求。

里面的东西好复杂,看不懂怎么办?

没关系,你只需要知道怎么拿数据就行了

image.png

注意看一下判断的那个地方,花裤衩大佬判断的是code,我根据自己的需求进行了更改

说了那么多,那么到底是怎么请求接口和请求数据的那?

image.png

把这个地方换成咱们自己的地址 ,之前或裤衩大佬可不是这样写的,他还有拼接的一步那在mock里面

image.png

找到这里之后果然是有配置那

然后咱们开始修改配置

因为我个人需求,需要先获取token然后根据token进行登录,所以有需要的小伙伴可以参考一下

我相比改的比较简单,像请求接口这一块我没有使用花裤衩大佬封装的拼接,直接给过滤调了

image.png

打码的地方是我的数据接口你们换成自己的就可以咯

image.png

咳咳重点来了,要考的尤其是新人,headers这个是代表了http请求头

我把url换成了我对应的请求接口

image.png

老规矩打码的地方换上自己的url地址

这个地方需要换成自己对应的数据接口地址

image.png

这样的话基本上第一个接口获取token就通了

如果小伙伴们没有获取用户信息的需求那么,要(敲黑板了~超凶)

首先让我们在/store/utils/modules/user

  // get user info
  getInfo({ commit, state }) {
    return new Promise((resolve, reject) => {
      getInfo(state.token).then(response => {
//如果不需要的话直接把getinfo这个方法注释掉
//然后进行模拟数据
//具体数据
 var data= {
    roles: ['admin'],
    introduction: 'I am a super administrator',
    avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
    name: 'Super Admin'
  },


        var data=response.Data.UserInfo
        if (!data) {
          reject('Verification failed, please Login again.')
        }
        const { LUB_Name } = data

        commit('SET_NAME', LUB_Name)
        // commit('SET_AVATAR', avatar)
        resolve(data)
      }).catch(error => {
        reject(error)
      })
    })
  },

这个请求方法和上面的那个一样,咱们在改一下api/user里面的方法接口就好了

export function getInfo(token) {
  var data=('bearer '+token)
  return request({
    url: '/api/Users/UserInfo',
    method: 'get',
    headers: {'Authorization': data },      //这个地方是因为我需要给http请求协议加上一个请求头
  })
}

到这里基本上vue-elemnt-admin 的登录就大功告成了

可能其中有些不足欢迎小伙伴及时补充

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 更新一个解决问题的思路,作为例子,见文章末尾 vue-admin使用 首先,一句话: 物有本末,事有始终,追根溯源...
    不困于情阅读 62,321评论 34 28
  • 前言 使用vue-resource请求接口非常方便,在使用前需安装vue-resource依赖并在入口文件main...
    一岑不冉阅读 8,579评论 22 64
  • 前言: 最近在开发一个后台管理系统,是基于vue-element-admin进行开发的,在开发过程中感受到该框架的...
    陈永仁lol阅读 67,548评论 9 65
  • 简介 参考博客: 全栈开发实战:用Vue2+Koa1开发完整的前后端项目(更新Koa2)前置技能: 具备Vue和K...
    Ghamster阅读 7,989评论 1 15
  • 前两天,在同学的淘宝店里买了件衣服,当时感觉同学挺忙的,没空多说,最后被问,急吗?能后天发货吗?当时突然有...
    璀璨的果子阅读 402评论 0 0