后台管理系统-------登录功能实现(element-ui)

登录页面代码(login):

<template><div class="login"><el-form:model="userinfo":rules="loginRules"label-position="right"class="el_box"label-width="60px"><el-form-item label="账号:" class="el_username" prop="username"><el-input v-model="userinfo.username"></el-input></el-form-item><el-form-item label="密码:" class="el_password" prop="username"><el-input type="password" v-model="userinfo.password"></el-input></el-form-item><el-button type="primary" class="el_login" @click.prevent="login">登录</el-button></el-form></div>
</template><script>
//引入封装好的api登录接口
import { login } from "../http/api";
export default {name: "login",data() {return {userinfo: {username: "",password: ""},loginRules: {username: [{ required: true, message: "请输入用户名", trigger: "blur" },{ min: 5, max: 10, message: "长度在 5 到 10 个字符", trigger: "blur" }],password: [{ required: true, message: "请输入密码", trigger: "blur" },{ min: 5, max: 10, message: "长度在 5 到 10 个字符", trigger: "blur" }]}};},methods: {//   登录async login() {const res = await login(this.userinfo);//   console.log(res);//   结构赋值const {meta: { msg, status }} = res.data;//   判断code值if (status === 200) {//   结构赋值tokenconst { token } = res.data.data;// 本地存储tokenlocalStorage.setItem("token", token);//赋值redirect表示的是被路由拦截拦下来的页面const { redirect } = this.$route.query;//如果直接登录,没有redirect,成功后直接跳转到homeif (!redirect) {this.$router.push({ name: "Home" });} else {this.$router.push({ path: redirect });}// 成功提示this.$message({message: msg,type: "success"});} else {//   失败提示this.$message({message: msg,type: "error"});}}}
};
</script><style lang="scss" scoped>
.login {width: 100%;height: 836px;background: #2a4c6b;.el_box {background: white;position: absolute;top: 30%;left: 40%;text-align: center;width: 400px;height: 300px;border-radius: 5px;margin: 0 auto;.el_username {margin-top: 70px;width: 80%;margin-left: 25px;}.el_password {margin-top: 20px;width: 80%;margin-left: 25px;}.el_login {width: 30%;margin-top: 20px;}}
}
</style>

api接口封装:(两个文件 request.js和api.js文件)

request.js: 设置axios拦截

import axios from "axios"const service = axios.create({baseURL: "https://www.liulongbin.top:8888/api/private/v1",timeout: 3000
})// 请求拦截
axios.interceptors.request.use(function (config) {return config;
}, function (error) {return Promise.reject(error)
})// 响应拦截
axios.interceptors.response.use(function (response) {return response;
}, function (error) {return Promise.reject(error)
});
export default service;

api.js: 项目中的业务接口

import request from "./request"// 登录接口
export function login(data){console.log(data)return request({url:"/login",method:"POST",data})
}

在main.js里面设置全局路由守卫:

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import ElementUI from 'element-ui';
import axios from "axios";
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false;
Vue.prototype.axios = axios;// 全局路由守卫
router.beforeEach((to, from, next) => {// console.log("from:", from);// console.log("to:", to);if (to.meta.auth) {// 本地获取tokenconst token = localStorage.getItem('token')// 判断token是否存在if (!token) {next({name: 'Login',// 返回上次跳转的路由query: { redirect: to.fullPath }})} else {next()}} else {next();}});new Vue({router,store,render: h => h(App)
}).$mount("#app");

router 路由配置:

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/Home.vue";
import Login from "../views/Login.vue"Vue.use(VueRouter);const routes = [{path: "/",name: "Login",component: Login},{path: "/home",name: "Home",meta:{auth:true},component: Home}];const router = new VueRouter({routes
});export default router;

登录的基本逻辑操作就是这样了

后台管理系统-------登录功能@zj-zhangjie相关推荐

  1. 后台管理系统——登录功能

    登录功能 1. 根据UI图完成页面编写 页面支持登录方式 账号登录包括用户名, 密码 ,图形验证码 ,短信验证码 账号登录形式为表单 // html <template><el-fo ...

  2. 电商后台管理系统登录功能前端实现

    目录 一 登录概述 1 登录业务流程 2 登录业务的相关技术点 3 token 和 cookie/session 一般选型策略 4 路由导航守卫控制访问权限 5 退出功能实现原理 二 登录-- tok ...

  3. python后台框架_我的第一个python web开发框架(14)——后台管理系统登录功能

    27 28 29 30 31 32 33  34 35 36 37 38 39  40 41 42 43 44 45 46 47 style="width:150px;"> ...

  4. 电商管理系统-登录功能

    电商管理系统-登录功能 一.登录逻辑 1.在登录页面输入账号和密码进行登录,将数据发送给服务器 2.服务器返回登录的结果,登录成功则返回数据中带有token 3.客户端得到token并进行保存,后续的 ...

  5. 【Vue 实战项目】后台管理系统登录页详解附源码

    提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...

  6. 神仙接私活神器,好用的后台管理系统,功能完整,代码结构清晰,强推

    今天,推荐一个后台管理系统.我第一次使用就有点上头,爱不释手,必须要推荐给大家. 上次是谁要的后台管理系统啊,我帮你找到了. 这是我目前见过最好的后台管理系统.功能完整,代码结构清晰.值得推荐.

  7. 多人博客管理系统登录功能

    多人博客管理系统 目标 能够知道搭建项目环境的步骤 能够理解模板优化 熟悉登录功能的思路逻辑 知道密码为什么需要加密 知道cookie跟session是什么 能够参照笔记写出登录功能 功能需求 博客内 ...

  8. 论文管理系统(登录功能)

    目录 一.后端部分 1.1 实体类 1.2 UserMapper类 1.3 Service层 接口 实现类 1.4 controller层 1.5 拦截器 二.前端部分 效果图 源码如下 代码讲解 准 ...

  9. Web Storage知识点梳理,模拟后台管理系统部分功能

    这货是啥? Web Storage又称网页数据存储: 当我们在制作网页时会希望记录一些信息,例如常见的用户登陆状态,计数器或- 者小游戏,但是又不希望用到数据库,就可以利用Web Storage技术将 ...

最新文章

  1. 小微企业好选择 单路塔式服务器推荐
  2. mysql 5.7.17源码包_centos7 mysql5.7.17源码安装
  3. Android系统启动系列----init进程
  4. leetcode303 区域和检索
  5. 使用Camera的几个步骤
  6. 前端进阶篇——02、CSS和JS
  7. ZBrush与数位板雕刻模型如何才能结合
  8. 使用POI中XSSF 实现“合并单元格时,仅保留左上角单元格的值,而放弃其他的值“ 问题排查笔记
  9. 多线程_线程插队_join()方法与锁的释放
  10. 【Web安全笔记】之【9.0 工具与资源】
  11. 【BZOJ2827】千山鸟飞绝 hash+堆+SBT
  12. oracle异常策略,oracle segmentation fault错误
  13. 不借助第三方插件,用js画日历
  14. Swing组件与监听器
  15. 路由器网口1一直闪烁正常吗_网口1一直闪烁上不了网
  16. php网站后台开发教程,WordPress做网站后台开发教程
  17. 加密算法之PKCS填充
  18. python名片管理器实验报告_名片管理系统——实验报告.doc
  19. python 正弦曲线_使用python生成正弦波数据
  20. 视频直播之webp礼物解决方案

热门文章

  1. 关于截图会黑屏的问题
  2. firefox中febe恢复的方法
  3. go每日新闻(2021-02-25)——悄悄告诉你:很可能Go 1.17就能尝试泛型
  4. JavaScript高级编程语言基础语法
  5. 对于UDS协议的传输控制协议ISO15765的学习记录
  6. 微服务项目:尚融宝(17)(后端搭建:数据字典)
  7. 2013年美国大学生数学建模竞赛B题O奖21185论文解读
  8. 欧姆龙CX-one编程基本知识
  9. 下载离线地图多种方式(osm,MapTileDownloader )
  10. 【PHP开发】国外程序员收集整理的 PHP 资源大全