当前位置:首页 > VUE

vue 实现记住密码

2026-02-18 00:24:35VUE

实现记住密码功能

在Vue中实现记住密码功能,通常需要结合前端存储机制和后端验证逻辑。以下是几种常见的实现方式:

使用localStorage存储用户凭证

// 登录方法示例
methods: {
  login() {
    if (this.rememberMe) {
      localStorage.setItem('username', this.username)
      localStorage.setItem('password', this.password)
    } else {
      localStorage.removeItem('username')
      localStorage.removeItem('password')
    }
    // 调用登录API
  },
  mounted() {
    const savedUsername = localStorage.getItem('username')
    const savedPassword = localStorage.getItem('password')
    if (savedUsername && savedPassword) {
      this.username = savedUsername
      this.password = savedPassword
      this.rememberMe = true
    }
  }
}

使用cookie存储登录状态

// 设置cookie
document.cookie = `username=${this.username}; max-age=2592000` // 30天有效期
document.cookie = `rememberMe=true; max-age=2592000`

// 读取cookie
function getCookie(name) {
  const value = `; ${document.cookie}`
  const parts = value.split(`; ${name}=`)
  if (parts.length === 2) return parts.pop().split(';').shift()
}

更安全的实现方式(推荐)

  1. 后端生成token返回给前端
  2. 前端根据"记住我"选项决定token存储方式
  3. 短期会话使用sessionStorage,长期记住使用localStorage或设置过期时间的cookie
// 登录成功后处理
handleLoginSuccess(response) {
  const token = response.data.token
  if (this.rememberMe) {
    localStorage.setItem('auth_token', token)
  } else {
    sessionStorage.setItem('auth_token', token)
  }
}

安全注意事项

  • 避免明文存储密码,建议存储加密后的token
  • 敏感信息应设置合理的过期时间
  • 提供明显的注销功能清除存储的凭证
  • 考虑使用HttpOnly cookie增强安全性
  • 重要系统应结合二次验证机制

完整组件示例

<template>
  <div>
    <input v-model="username" placeholder="用户名">
    <input v-model="password" type="password" placeholder="密码">
    <label>
      <input type="checkbox" v-model="rememberMe"> 记住我
    </label>
    <button @click="login">登录</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
      rememberMe: false
    }
  },
  mounted() {
    const savedUsername = localStorage.getItem('username')
    if (savedUsername) {
      this.username = savedUsername
      this.rememberMe = true
    }
  },
  methods: {
    login() {
      // 调用API验证
      if (this.rememberMe) {
        localStorage.setItem('username', this.username)
      } else {
        localStorage.removeItem('username')
      }
    }
  }
}
</script>

vue 实现记住密码

标签: 密码vue
分享给朋友:

相关文章

vue实现前端注册

vue实现前端注册

Vue 实现前端注册功能 注册表单设计 使用 Vue 的模板语法创建注册表单,包含用户名、邮箱、密码和确认密码字段。表单需绑定 v-model 实现双向数据绑定。 <template>…

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Router…

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…

vue原型实现

vue原型实现

Vue 原型实现的关键点 Vue.js 的原型系统是其响应式机制的核心部分,通过原型链实现数据的动态绑定和依赖收集。以下是实现 Vue 原型的主要技术要点。 数据响应式原理 Vue 通过 Obje…

vue实现选区

vue实现选区

Vue 实现选区的基本方法 在Vue中实现选区功能通常涉及DOM操作和事件处理。以下是几种常见的方法: 使用原生JavaScript的Selection API 通过window.getSelec…

vue SSG实现

vue SSG实现

Vue SSG 实现方法 Vue 的静态站点生成(SSG)可以通过多种工具和框架实现,以下是几种常见的方法: 使用 VuePress VuePress 是一个基于 Vue 的静态站点生成器,适合文…