当前位置:首页 > VUE

vue 实现记住密码

2026-02-18 00:24:35VUE

实现记住密码功能

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

使用localStorage存储用户凭证

vue 实现记住密码

// 登录方法示例
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()
}

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

vue 实现记住密码

  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 datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vue…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要依赖…

vue实现全景

vue实现全景

Vue 实现全景效果的方法 使用 Vue 实现全景效果通常需要结合第三方库或框架,以下是几种常见的方法: 使用 Three.js 和 Vue-Three.js Three.js 是一个强大的 3D…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FFm…

vue实现图册

vue实现图册

Vue实现图册功能 在Vue中实现图册功能通常涉及图片展示、切换、缩放等交互效果。以下是常见的实现方法和关键代码示例: 基础图册组件结构 使用Vue单文件组件构建基础结构: <templat…

vue grid实现

vue grid实现

Vue Grid 实现方法 在 Vue 中实现网格布局可以通过多种方式完成,包括使用原生 CSS Grid、第三方组件库或自定义组件。以下是几种常见方法: 使用原生 CSS Grid 通过 Vue…