1、解读Login

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

2、查找store中的login  在store>modules>user.js 找到

// 登录
    Login({ commit }, userInfo) {
      const username = userInfo.username.trim()
      return new Promise((resolve, reject) => {
        login(username, userInfo.password).then(response => {
          const data = response.data
          setToken(data.token)
          commit('SET_TOKEN', data.token)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },

3、store>modules>user.js 引入了外部方法
import { login, logout, getInfo } from ‘@/api/login’
import { getToken, setToken, removeToken } from ‘@/utils/auth’

api>user.js 这里是实际的接口调用方法

export function login(username, password)
{
 return request({
    // 页面登陆方法
    // data是传入参数,返回什么数据
    url: '/login', //实际调用的webapi接口方法
    method: 'get',
    params
  })
} 

4,可以看出这个模板的好处,当我们进行二次开发时,只需增加一个后端接口,用于身份验证。
步骤:

1.前端调用接口将用户名和密码传入后端
2.后端通过用户名在数据库中查询密码是否正确,正确则返回一个token
3.前端接收token,并将token保存在cookie中

保存token的方法也做了封装,作为一个工具类,utils->auth.js
在这里插入图片描述

GitHub 加速计划 / vu / vue-admin-template
19
6
下载
PanJiaChen/vue-admin-template: 基于 Vue.js 和 Element UI 的后台管理系统模板,支持多语言、主题和布局切换。该项目提供了一个完整的后台管理系统模板,可以方便地实现后台管理系统的快速搭建和定制,同时支持多种数据源和插件扩展。
最近提交(Master分支:4 个月前 )
4c18a3f4 - 4 年前
714ded11 - 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐