0
点赞
收藏
分享

微信扫一扫

前端使用vue编写登录代码

一、基础登录组件实现

  1. 创建登录表单组件

<template>
  <el-form :model="loginForm" :rules="rules" ref="loginForm">
    <el-form-item prop="username">
      <el-input v-model="loginForm.username" placeholder="用户名"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="loginForm.password" placeholder="密码"></el-input>
    </el-form-item>
    <el-button @click="handleLogin">登录</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      loginForm: { username: '', password: '' },
      rules: {
        username: [{ required: true, message: '请输入用户名' }],
        password: [{ required: true, message: '请输入密码' }]
      }
    }
  },
  methods: {
    async handleLogin() {
      try {
        const res = await this.$axios.post('/api/login', this.loginForm)
        localStorage.setItem('token', res.data.token)
        this.$router.push('/dashboard')
      } catch (error) {
        console.error('登录失败', error)
      }
    }
  }
}
</script>

二、完整登录流程实现要点

  1. 路由配置
  • 添加登录路由
  • 配置动态路由加载逻辑
  1. 状态管理
  • 使用Vuex存储用户信息和token
  • 实现登录状态持久化
  1. 安全措施
  • 添加验证码功能
  • 实现Token自动刷新机制
  • 敏感操作二次验证

三、进阶方案推荐

  1. 单点登录(SSO)实现
  • 基于Cookie的同域方案
  • 基于JWT的跨域方案
  • 基于OAuth2.0/OIDC的标准方案
举报

相关推荐

0 条评论