一、登录业务流程
1.在登录页面输入用户名和密码
2.调用后台接口进行验证
3.通过验证之后,根据后台得响应状态跳转到项目主页
二、登录业务的相关技术点
http是无状态的通过cookie在客户端记录状态通过session在服务器端记录状态通过token方式维持状态
这里要清楚哦!
三、登录—token原理分析
1.登录页面输入用户名和密码进行登录
2.服务器验证通过之后生成该用户的token并返回
3.客户端存储该token
4.后续所有的请求都携带该token发送请求
5.服务器端验证token是否通过
四、登录功能实现
登录页面的布局
通过Element-UI组件实现布局
el-form
el-form-item
el-input
el-button
字体图标
在vscode打开终端ctrl+~
git status 查看当前git状态
git checkout -b login 创建一个新的分支叫login
git branch 切换分支
在vue ui中启动!
终端指令npm run serve也可以运行!
在components文件下创建一个vue文件
1 2 3 4 5 6 7 8 9 10 11 1 | import Vue from 'vue' import VueRouter from 'vue-router' import login from './components/login.vue' Vue.use(VueRouter) const routes = [ {path:'/login',component:login} ] const router = new VueRouter({ routes }) export default router |
配置路由(并添加路由重定向)
1 2 3 4 5 6 7 8 9 10 1 | const router = new VueRouter({ routes: [ { path: '/', redirect: '/login' }, { path: '/login', component: login } ] }) |
一定要注意空格,不然会报错,可恶啊!
页面编写
先给一个全局样式表
1 2 3 4 5 6 7 8 | /* 全局样式表 */ html, body, #app{ height: 100%; margin: 0; padding: 0; } |
并在main.js中导入
1 | import './assets/css/global.css' |
完成登录框居中
注意:translate 进行移动,完成真正的居中
1 2 3 4 5 6 7 8 9 | .login_box{ width: 450px; height: 300px; background-color: #fff; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); } |
添加一个登录图标
1 2 3 4 5 6 7 8 9 10 11 12 13 1 | .avatar_box{ height: 130px; width: 130px; border: 1px solid #eee; border-radius: 50%; padding: 10px; box-shadow: 0px 0px 10px #ddd; position: absolute; left: 50%; transform: translate(-50%,-50%); background-color: #fff; img{ width: 100%; height: 100%; border-radius: 50%; background-color: #eee; } } |
五、登录表单的布局
通过Element-UI组件实现布局
el-form
el-form-item
el-input
el-button
字体图标
导入组件
1 2 3 4 5 6 7 | import Vue from 'vue' import { Button, Form, FormItem, Input } from 'element-ui'//分开import会报错 Vue.use(Button) Vue.use(Form) Vue.use(FormItem) Vue.use(Input) |
中间form和button都是直接到上面的组件库里面去找的
中间一些代码不贴了,比较枯燥呀
特别地,我们的小图标是从阿里的icon库里面下载的
六、登录表单的数据绑定
1.:model=“loginForm” 绑定一个表单
2.在form-item中用v-model双向绑定数据对象
3.在export default中data() return表单数据
七、登录表单的验证规则
1.:rules="ruleForm"绑定一个规则
2.在form-item中用prop属性设置为需要校验的字段名
1 2 3 4 5 6 7 8 9 10 11 1 | // 这是表单的验证规则对象 loginFormRules: { // 验证用户名是否合法 username: [ { required: true, message: '请输入登录名称', trigger: 'blur' }, { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' } ], // 验证密码是否合法 password: [ { required: true, message: '请输入登录密码', trigger: 'blur' }, { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' } ] } |
八、登录表单的重置
1.在el-form中添加ref引用名称,以便获取表单
2.在方法中添加方法,用this.$refs.loginFormRef.resetFields()来重置表单,注意表单的值会变为data里面设置的初值
九、登录预验证
1.同样的this.$refs.loginFormRef.validate()
2.配置axios