vue 记住密码下次自动登录

2023-11-18

<div>
  <input id="adviceCheck" type="checkBox" name="adviceCheck" :checked="pasChecked" @click="changeChecked" />
  <label for="adviceCheck" class="advice">下次自动登录</label>
</div>
<el-button type="primary" :loading="logining"  @click="login('loginForm')">登录</el-button>


import tokenUtils from '../../utils/cookieToken'

data() {
  return {
    ruleForm: {
      account: '',
      password: ''
    },
    pasChecked: false
  }
},

mounted() {
  tokenUtils.getCookie(this.ruleForm.account, this.ruleForm.password)
},


methods: {
  changeChecked() {
    this.pasChecked = !this.pasChecked
  },

  loginYz(form) {
    this.$refs[form].validate(valid => {
      if (valid) {
        // 保存的账号
        const name = this.ruleForm.account
        // 保存的密码
        const pass = this.ruleForm.password
        // 判断复选框是否被勾选 勾选则调用配置cookie方法
        if (this.pasChecked == true) {
          // 传入账号名,密码,和保存天数3个参数
          tokenUtils.setCookie(name, pass, 7)
        } else {
          tokenUtils.clearCookie()
        }
        // this._login()
      } else {
        return
      }
    })
  },
}

utils/cookieToken文件

export default {
  // 设置cookie
  setCookie(c_name, c_pwd, exdays) {
    const exdate = new Date()// 获取时间
    exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays)// 保存的天数
    // 字符串拼接cookie
    const expires = 'expires=' + exdate.toUTCString()
    window.document.cookie = 'userName=' + c_name + ';path=/;' + expires
    window.document.cookie = 'userPwd=' + c_pwd + ';path=/;' + expires
  },
  // 读取cookie
  getCookie(userName, password) {
    if (document.cookie.length > 0) {
      const arr = document.cookie.split('; ')// 这里显示的格式需要切割一下自己可输出看下
      for (let i = 0; i < arr.length; i++) {
        const arr2 = arr[i].split('=')// 再次切割
        // 判断查找相对应的值
        if (arr2[0] === 'userName') {
          userName = arr2[1]// 保存到保存数据的地方
        } else if (arr2[0] === 'userPwd') {
          password = arr2[1]
        }
      }
    }
  },

或
 // 读取cookie
  getCookie(key) {
    if (document.cookie.length > 0) {
      const arr = document.cookie.split('; ')// 这里显示的格式需要切割一下自己可输出看下
      for (let i = 0; i < arr.length; i++) {
        const arr2 = arr[i].split('=')// 再次切割
        // 判断查找相对应的值
        if (arr2[0] === key) {
          return arr2[1]// 保存到保存数据的地方
        }
      }
    }
  },


  // 清除cookie
  clearCookie: function() {
    this.setCookie('', '', -1)// 修改2值都为空,天数为负1天就好了
  }
}

点击下次自动登录,再点击登录时,会保存用户名及密码(7天) 

图形验证码参考

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 记住密码下次自动登录 的相关文章

随机推荐

  • Vue3优雅地监听localStorage变化

    目录 前言 为什么要这样做 思路 实现 实现中介者模式 重写localStorage 实现useStorage hook 测试 使用localStorage 监听localStorage变化 结果 前言 最近在研究框架 也仔细用了Vue3一
  • 搜索引擎使用技巧详解

    说到搜索 这可能是我们每个网民每天都要用到的操作 这个操作看起来很简单 一般用户都是想搜什么就输入什么 然后一按搜索就直接开始 这是最简单最快速的方法 但可能并不是最有效的方法 要想搜索结果最合乎你的意愿 IT 之家建议你掌握如下 8 个技
  • 第十三课,深度测试

    开启深度测试 glEnable GL DEPTH TEST 清除深度缓存 glClear GL COLOR BUFFER BIT GL DEPTH BUFFER BIT 深度测试函数 OpenGL允许我们禁用深度缓冲的写入 只需要设置它的深
  • xshell无法连接vmware虚拟机

    一 问题描述 本机使用Xshell无法连接VMware中的虚拟机 并且从本机也无法ping通虚拟机 虚拟机也无法ping通本机物理机 二 环境 场景 物理机 windows10系统 Xshell 6 VMware Workstation 1
  • linux 下的 iptables/ netfilter 防火墙 深度理解 前篇

    一 概述 iptables 其实不是真正的防火墙 我们可以把它理解为一个客户端代理 用户通过iptables 这个代理 将用户的安全设置执行到对应的 安全框架 中 这个安全框架才是真正的防火墙 这个框架的名称叫做netfilter 二 五链
  • 服务器虚拟化导出快照,ESXi5 PACS服务器虚拟化系统快照数据恢复

    杭州某国有企业 一台ESXi5 1 虚拟化系统中运行一重要的PACS服务的虚拟机 因为之前做了快照 管理员在误还原快照后 数据回到3个月前 数据很重要 管理员在尝试多种方式后 也无法补救数据 后通过集成商介绍 联系到了北京安数云和科技 北京
  • sklearn K近邻KNeighborsClassifier参数详解

    原文网址 https scikit learn org stable modules generated sklearn neighbors KNeighborsClassifier html class sklearn neighbors
  • 项目中的STL经验

    STL是c 非常重要的一部分 它是很多大神的杰作 高效 稳定 可扩展性好 虽然STL确实存在难以调试 内存碎片的问题 现在机器的内存越来越大 内存碎片的问题基本不太可能成为系统瓶颈 但只要你使用恰当 它能显著提高生产力 并使代码更短 更易维
  • 五大常用经典算法

    五大常用算法之一 分治算法 一 基本概念 在计算机科学中 分治法是一种很重要的算法 字面上的解释是 分而治之 就是把一个复杂的问题分成两个或更多的相同或相似的子问题 再把子问题分成更小的子问题 直到最后子问题可以简单的直接求解 原问题的解即
  • 【UE4】搭建局域网内VR直播 UE4.27

    前言 英伟达显卡 UE4 27的内网搭建360 相机直播 并在内网任意设备使用VR观看 理论上性能足够效果越好 此处使用的VR设备为Vive 梳理了整体构建流程 希望能帮到你 多图警告 图片教程比较直观 1 准备工作 下载UE和OBS所需安
  • 代码走查和代码审查_代码审查随时间而变化

    代码走查和代码审查 我们已经进行了大约4年的代码审查 代码审查入门 从一开始 开发人员就会互相帮助 在有人询问时查看代码 或者有时主管或高级开发人员会介入并检查代码 如果我们发现测试存在问题 或者是否有人刚刚加入团队并且我们期望他们需要一些
  • android 透明状态栏方法及其适配键盘上推(二)

    在上一篇文章中介绍了一种设置透明状态栏及其适配键盘上推得方法 但是上一篇介绍的方法中有个缺点 就是不能消除掉statusbar的阴影 很多手机如 三星 Nexus都带有阴影 即使我用了
  • GD32F303调试小记(五)之ADC+DMA+硬件过采样

    前言 单片机的大多数的功能都是基于数字信号去控制的 然而许多的场合下 我们也需要有模拟信号的参与 因为许多变量的控制是需要连续的而非阶跃式的 常见的若想得到电压值 温度值 电流值等等都需要用到A D转换 如果外围器件不是特定IC而是自己搭的
  • Mask R-CNN详解

    一 Mask R CNN网络介绍 Mask R CNN是何凯明2017年提出的一个实例分割 Instance segmentation 算法 可以用来做 目标检测 目标实例分割 目标关键点检测 是ICCV2017的best paper Ma
  • 小科普

    买固态硬盘 我们会比较关注颗粒寿命 机械硬盘虽然几乎不用考虑长寿与否 除了考虑SMR PMR记录方式外 最怕的其实就是坏 盘一挂数据未必能找回来 所以其故障率指标就显得尤为重要 各种寿命指标 那这个指标一般就是MTBF了 全称平均无故障间隔
  • 文件传输协议FTP与TCP/IP协议之间有什么关系

    TCP IP协议是目前网络所采用的一种框架协议 包括五层 应用层 传输层 网络层 链路层 物理层 FTP协议是TCP IP协议的一部分 严格意义上来说是应用层协议 FTP是一种应用程序 基于TCP IP协议 它定义了本地登录户机与远程服务器
  • Verilog HDL运算符

    一 逻辑运算符 逻辑与 逻辑或 逻辑非 二 关系运算符 逻辑相等 逻辑不等 全等 不全等 和 可以比较含有x和z的操作数 在模块的功能仿真中有着广泛的应用 三 位运算符 非 与 或 异或 同或 四 拼接运算符 s1 s2 sn 五 一元约简
  • Python数据可视化:豆瓣电影TOP250

    欢迎关注天善智能 我们是专注于商业智能BI 人工智能AI 大数据分析与挖掘领域的垂直社区 学习 问答 求职一站式搞定 对商业智能BI 大数据分析挖掘 机器学习 python R等数据领域感兴趣的同学加微信 tstoutiao 邀请你进入数据
  • eclipse 使用maven构建 springboot +swagger

    swagger用于定义API文档 好处 1 前后端分离开发 2 API文档非常明确 3 测试的时候不需要再使用URL输入浏览器的方式来访问Controller 4 传统的输入URL的测试方式对于post请求的传参比较麻烦 当然 可以使用po
  • vue 记住密码下次自动登录

    div div