当前位置:首页 > VUE

vue实现记住密码

2026-01-15 05:55:51VUE

Vue 实现记住密码功能

在 Vue 中实现记住密码功能通常涉及前端表单处理、本地存储(如 localStorage 或 cookie)以及安全注意事项。以下是具体实现方法:

使用 localStorage 存储用户凭证

  1. 创建登录表单组件 在 Vue 模板中添加复选框绑定 v-model,用于标记是否记住密码:

    <template>
      <form @submit.prevent="handleLogin">
        <input v-model="username" placeholder="用户名" />
        <input v-model="password" type="password" placeholder="密码" />
        <label>
          <input type="checkbox" v-model="rememberMe" /> 记住密码
        </label>
        <button type="submit">登录</button>
      </form>
    </template>
  2. 处理登录逻辑 在提交时根据复选框状态存储数据到 localStorage

    <script>
    export default {
      data() {
        return {
          username: '',
          password: '',
          rememberMe: false
        };
      },
      methods: {
        handleLogin() {
          if (this.rememberMe) {
            localStorage.setItem('username', this.username);
            localStorage.setItem('password', this.password);
          } else {
            localStorage.removeItem('username');
            localStorage.removeItem('password');
          }
          // 调用登录 API
        }
      },
      created() {
        const savedUsername = localStorage.getItem('username');
        const savedPassword = localStorage.getItem('password');
        if (savedUsername && savedPassword) {
          this.username = savedUsername;
          this.password = savedPassword;
          this.rememberMe = true;
        }
      }
    };
    </script>

使用 Cookie 替代 localStorage

如果需要更灵活的过期时间或后端读取,可以使用 js-cookie 库:

vue实现记住密码

  1. 安装依赖:

    npm install js-cookie
  2. 修改存储逻辑:

    vue实现记住密码

    import Cookies from 'js-cookie';
    
    // 存储(设置7天过期)
    if (this.rememberMe) {
      Cookies.set('username', this.username, { expires: 7 });
      Cookies.set('password', this.password, { expires: 7 });
    }
    
    // 读取
    const savedUsername = Cookies.get('username');
    const savedPassword = Cookies.get('password');

安全注意事项

  1. 避免明文存储密码 推荐只存储用户名,密码通过后端返回的 token 替代:

    // 登录成功后存储 token
    localStorage.setItem('authToken', response.data.token);
  2. 使用 HTTPS 确保所有传输加密,防止中间人攻击。

  3. 提供显式退出选项 清除所有存储的敏感数据:

    localStorage.removeItem('authToken');
    Cookies.remove('username');

完整示例(Token 方案)

<template>
  <form @submit.prevent="handleLogin">
    <input v-model="username" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <label>
      <input type="checkbox" v-model="rememberMe" /> 记住我
    </label>
    <button type="submit">登录</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
      rememberMe: false
    };
  },
  created() {
    this.username = localStorage.getItem('username') || '';
    this.rememberMe = !!this.username;
  },
  methods: {
    async handleLogin() {
      const res = await api.login(this.username, this.password);
      if (res.success) {
        if (this.rememberMe) {
          localStorage.setItem('username', this.username);
        } else {
          localStorage.removeItem('username');
        }
        localStorage.setItem('authToken', res.token);
      }
    }
  }
};
</script>

关键点总结

  • 优先使用 token 而非明文密码
  • 提供明显的用户控制选项(如复选框)
  • 敏感数据需设置合理的过期时间
  • 退出登录时彻底清除数据

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

相关文章

vue实现mvc

vue实现mvc

Vue 实现 MVC 模式 Vue 本身是一个 MVVM(Model-View-ViewModel)框架,但可以通过结构调整实现 MVC(Model-View-Controller)模式。以下是具体实…

vue实现ai

vue实现ai

Vue 实现 AI 功能 Vue.js 可以通过集成第三方 AI 服务或本地 AI 模型来实现 AI 功能。以下是几种常见的方法: 集成第三方 AI API 使用 Vue 调用如 OpenAI、G…

vue实现主页

vue实现主页

Vue 实现主页的基本步骤 创建一个 Vue 主页通常涉及以下几个关键步骤,从项目初始化到页面布局和功能实现。 初始化 Vue 项目 使用 Vue CLI 或 Vite 初始化项目。Vue CLI…

vue slot实现

vue slot实现

vue slot 的实现方法 在 Vue 中,slot 是一种内容分发机制,允许父组件向子组件传递模板内容。以下是几种常见的 slot 实现方式: 默认 slot 默认 slot 是最基础的 slo…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现erp

vue实现erp

Vue实现ERP系统的关键步骤 技术选型与架构设计 采用Vue 3 + TypeScript构建前端,搭配Pinia状态管理,Element Plus或Ant Design Vue作为UI框架。后端可…