电商管理系统-登录注册界面

Posted 蚂蚁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电商管理系统-登录注册界面相关的知识,希望对你有一定的参考价值。

1、路由登录拦截

首先在路由index.js文件中需要挂载路由导航守卫,其中to为将要访问的路径,from为代表从哪个路径跳转,next是一个函数,表示放行,即进行跳转。

当跳转路径为登录界面时,则进行跳转,若sessionStorage中含有token,则直接登录,若不含有token,则跳转到登录界面。

复制代码
router.beforeEach((to,from,next)=>{
if(to.path===\'/login\') return next()
//获取token
const tokenStr = window.sessionStorage.getItem(\'token\')
if(!tokenStr) return next(\'/login\')
next()
})
复制代码
当登陆成功后,将服务器返回的token保存到sessionStorage,由于token在localStorage中是长久保持的,而sessionStorage是仅在会话期间保存,所以选择将token保存在sessionStorage中。

复制代码
login() {
this.$refs.loginFormRef.validate(async valid => {

   if (!valid) return;
   //验证成功则发送登录请求({data:res}解构赋值出data,)
   const { data: res } = await this.$http.post(\'login\', this.loginForm);
   if (res.meta.status !== 200) return this.$message.error(\'登录失败!\');
   this.$message.success(\'登录成功\');  //弹框效果

   window.sessionStorage.setItem(\'token\', res.data.token);
   //通过编程式导航跳转到后台主页,路由地址是/home
   this.$router.push(\'home\')

})
}
复制代码
为了使得项目中除了登录之外的其他API接口,都必须在登陆后才能访问到,所以需要用到拦截器。在axios的interceptors中进行配置。为每一个请求header带上token。

axios.interceptors.request.use(config=>{ //请求拦截
//为请求头对象添加token验证的Authorization字段
config.headers.Authorization = window.sessionStorage.getItem(\'token\')
return config
})
当退出登录时,只需要将sessionStorage中的token清除,然后跳转到登录界面即可。

logout() {

  window.sessionStorage.clear()  //删除token
  this.$router.push(\'/login\')    //回到登录页

},
2、表单的验证规则

采用Element-UI组件,首先进行引入各组件,通过Vue.use()全局注册组件,以下为表单内的各个组件和对应的验证规则,

复制代码
<el-form label-width="0px" ref="loginFormRef" class="login_form" :model="loginForm" :rules="loginFormRules">

<!-- 用户名 --> 
<el-form-item prop="username">
     <el-input prefix-icon="iconfont icon-user" v-model="loginForm.username"></el-input>
</el-form-item>
<!-- 密码 -->
<el-form-item>
      <el-input prefix-icon="iconfont icon-3702mima" v-model="loginForm.password" type="password"></el-input>
</el-form-item>
<el-form-item class=\'btns\'>
<!-- 按钮 -->
     <el-button type="primary" @click="login">登录</el-button>
     <el-button type="info" @click="resetLoginForm">重置</el-button>
</el-form-item>

</el-form>
复制代码
复制代码
//表单的验证规则
loginForm: {

 username: \'admin\',
 password: \'123456\'

},
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\' }
]

}
复制代码
3、实现效果

以上是关于电商管理系统-登录注册界面的主要内容,如果未能解决你的问题,请参考以下文章

《果然新鲜》电商项目(27)- 门户界面

Vue电商管理系统-登录界面

Vue电商管理系统-登录界面

电商小程序实战教程-用户登录注册

电商小程序实战教程-用户登录注册

《果然新鲜》电商项目(28)- 获取验证码功能