位置: IT常识 - 正文

Vue实现记住账号密码功能(vue注册用户名和密码)

编辑:rootadmin
实现思路: 用户登录时若勾选“记住我”功能选项,则将登录名和密码(加密后)存入本地缓存,下次登录页面加载时自动获取保存好的账号和密码(需解密),回显到登录输入框中。 说到存入本地缓存,大家想到的一定是cookies、localStorage、sessionStorage,不过后者我是不推荐使用的,咱 ...

推荐整理分享Vue实现记住账号密码功能(vue注册用户名和密码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue登陆之后怎么显示用户名,vue记住密码怎么实现,vue实现记住账号密码,vue记住账号密码,vue保存用户登陆信息,vue实现记住账号密码,vue实现记住账号密码,vue实现记住账号密码,内容如对您有帮助,希望把文章链接给更多的朋友!

实现思路:

  用户登录时若勾选“记住我”功能选项,则将登录名和密码(加密后)存入本地缓存,下次登录页面加载时自动获取保存好的账号和密码(需解密),回显到登录输入框中。

Vue实现记住账号密码功能(vue注册用户名和密码)

  说到存入本地缓存,大家想到的一定是cookies、localStorage、sessionStorage,不过后者我是不推荐使用的,咱们既然需求是记住密码那肯定是长时间或到下次取消时失效,但sessionStorage仅在当前会话下有效,关闭浏览器窗口后就被清除了,所以并不适用于我们当前的需求,cookies呢可以手动设置过期时间,超过有效期则失效。未设置过期时间,关闭浏览器窗口后就被清除了,显然是符合我们开发需求的,localStorage呢除非主动清除localStorage里的信息,否则将永远存在,关闭浏览器窗口后下次启动任然存在,这个也是符合我们开发需求的,根据业务需求我选择的是localStorage,下面是我实现的具体步骤,废话不多说直接开干。

1 <el-form 2 ref="loginForm" 3 :model="loginForm" 4 :rules="loginRules" 5 class="login-form" 6 auto-complete="on" 7 label-position="left" 8 > 9 <div class="user-login">10 <div class="title-container">11 <span class="title">用户登录</span>12 <span class="annotation">BACKGROUND LOGIN</span>13 </div>14 <div class="core-container">15 <el-form-item prop="username">16 <span class="svg-container">17 <i class="icon el-icon-user" />18 </span>19 <el-input20 ref="username"21 v-model="loginForm.username"22 placeholder="请输入用户名称"23 name="username"24 type="text"25 tabindex="1"26 auto-complete="on"27 />28 </el-form-item>29 <el-form-item prop="password">30 <span class="svg-container">31 <i class="icon el-icon-lock" />32 </span>33 <el-input34 :key="passwordType"35 ref="password"36 v-model="loginForm.password"37 :type="passwordType"38 placeholder="请输入密码"39 name="password"40 tabindex="2"41 auto-complete="on"42 @keyup.enter.native="handleLogin"43 />44 <span class="show-pwd" @click="showPwd">45 <img46 src="@/icons/png/pawyc.png"47 v-if="passwordType === 'password'"48 />49 <i class="el-icon-view" v-else></i>50 </span>51 </el-form-item>52 <el-checkbox53 v-model="checked"54 label="记住密码"55 name="type"56 ></el-checkbox>57 </div>58 <el-button59 class="loginBtn"60 :loading="loading"61 type="primary"62 style="width: 100%; margin-bottom: 30px"63 @click.native.prevent="handleLogin(loginForm)"64 >立即登录</el-button65 >66 </div>67 </el-form>

记住账号密码实现流程

密码加密:为提高安全性,密码存储前需进行加密处理。目前加密方式有很多种,我这里选用了base64。

npm安装base64依赖//安装npm install --save js-base64//引入const Base64 = require("js-base64").Base64 1 const Base64 = require('js-base64').Base64 2 export default { 3 data() { 4 return { 5 loginForm: { 6 username: '', 7 password: '', 8 }, 9 checked: false,10 };11 },12 mounted () {13 let username = localStorage.getItem('username')14 if (username) {15 this.loginForm.username = localStorage.getItem('username')16 this.loginForm.password = Base64.decode(localStorage.getItem('password'))// base64解密17 this.checked = true18 }19 },20 // 立即登录21 handleLogin (loginForm) {22 this.$refs.loginForm.validate(async (isOK) => {23 if (isOK) {24 /* ------ 账号密码的存储 ------ */25 if (this.checked) {26 let password = Base64.encode(this.loginForm.password) // base64加密27 localStorage.setItem('username', this.loginForm.username)28 localStorage.setItem('password', password)29 } else {30 localStorage.removeItem('username')31 localStorage.removeItem('password')32 }33 try {34 let encrypt = new JSEncrypt() // 新建JSEncrypt对象35 encrypt.setPublicKey(this.publicKey) // 设置公钥36 let password = encrypt.encrypt(this.loginForm.password) // 对密码进行加密37 this.loading = true38 await this['user/login']({39 username: this.loginForm.username,40 password: password,41 captcha: this.captchaKey + ':' + this.loginForm.captcha,42 isRememberMe: this.loginForm.isRememberMe,43 isScanLogin: this.loginForm.isScanLogin ? 1 : 044 }).then((res) => {45 this.$router.push(46 {47 path:'/transitionPage',48 query:{49 username:this.loginForm.username50 }51 }52 )53 })54 } catch (error) {55 this.$message.error('用户名或密码错误!')56 } finally {57 // 不论执行try 还是catch 都会执行finally 去关闭转圈58 this.loading = false59 }60 }61 })62 }63 },64 };

进行到这里也就算是完成这个需求了

这个需求的核心代码我标一下

1 /* ------ 账号密码的存储 ------ */2 if (this.checked) {3 let password = Base64.encode(this.loginForm.password) // base64加密4 localStorage.setItem('username', this.loginForm.username)5 localStorage.setItem('password', password)6 } else {7 localStorage.removeItem('username')8 localStorage.removeItem('password')9 }
本文链接地址:https://www.jiuchutong.com/zhishi/310528.html 转载请保留说明!

上一篇:分享帝国CMS首页调用最新会员、活跃会员与积分排行的方法(分享帝国cms首页在哪)

下一篇:合集phpcms安全漏洞(php5.6漏洞)

  • 微信公众账号究竟如何运营(微信公众帐号)

    微信公众账号究竟如何运营(微信公众帐号)

  • iqooz5x手机屏幕多大

    iqooz5x手机屏幕多大

  • 美图秀秀怎么平均切片(美图秀秀怎么平铺水印)

    美图秀秀怎么平均切片(美图秀秀怎么平铺水印)

  • 为什么我们需要5g(为什么我们需要法治)

    为什么我们需要5g(为什么我们需要法治)

  • 华为p40pro可以注视不熄屏吗(华为p40怎么注册)

    华为p40pro可以注视不熄屏吗(华为p40怎么注册)

  • 户户通信号质量70搜不到台(户户通信号质量31不变)

    户户通信号质量70搜不到台(户户通信号质量31不变)

  • 公众号群发能被谁看到(公众号群发被永久限制怎么解除)

    公众号群发能被谁看到(公众号群发被永久限制怎么解除)

  • 华为手机网络不稳定是什么原因(华为手机网络不可用是什么原因)

    华为手机网络不稳定是什么原因(华为手机网络不可用是什么原因)

  • cmos电池没电会有什么故障现象(cmos电池没电会黑屏吗)

    cmos电池没电会有什么故障现象(cmos电池没电会黑屏吗)

  • power sw分正负极吗(sw ch正负极)

    power sw分正负极吗(sw ch正负极)

  • 淘宝帮买消息怎么回事(淘宝帮买消息怎么能让对方收不到)

    淘宝帮买消息怎么回事(淘宝帮买消息怎么能让对方收不到)

  • qq举报人别人会收到什么(qq举报人别人会看到吗)

    qq举报人别人会收到什么(qq举报人别人会看到吗)

  • 手机下载不了微信怎么回事(手机下载不了微课掌上通)

    手机下载不了微信怎么回事(手机下载不了微课掌上通)

  • a57是什么型号的手机(a57啥意思)

    a57是什么型号的手机(a57啥意思)

  • 苹果手机播放不了视频怎么办(苹果手机播放不了qq音乐)

    苹果手机播放不了视频怎么办(苹果手机播放不了qq音乐)

  • 二进制数110011转换成八进制数是(二进制数110011转换成八进制数是计算过程)

    二进制数110011转换成八进制数是(二进制数110011转换成八进制数是计算过程)

  • oracle初始密码(oracle初始化账号密码)

    oracle初始密码(oracle初始化账号密码)

  • 全部微博为0是屏蔽吗(全部微博为0是什么意思)

    全部微博为0是屏蔽吗(全部微博为0是什么意思)

  • 增量下载怎么解决(增量下载设置在哪)

    增量下载怎么解决(增量下载设置在哪)

  • word字符间距在哪(word字符间距在哪里调)

    word字符间距在哪(word字符间距在哪里调)

  • word纸型设置16k(word纸型设置横向)

    word纸型设置16k(word纸型设置横向)

  • 手机号前面加86是什么意思(手机号前面加86是什么情况)

    手机号前面加86是什么意思(手机号前面加86是什么情况)

  • vivoz1充满电能用多久(vivo手机充满电能玩多长时间)

    vivoz1充满电能用多久(vivo手机充满电能玩多长时间)

  • MAC中Finder使用快捷键汇总(可快速完成多种操作)(mac os常用快捷键)

    MAC中Finder使用快捷键汇总(可快速完成多种操作)(mac os常用快捷键)

  • vue3+vite:本地代理,配置proxy(vue怎么使用本地存储比较好)

    vue3+vite:本地代理,配置proxy(vue怎么使用本地存储比较好)

  • Redis高频面试题汇总(上)(redis面试必会6题经典)

    Redis高频面试题汇总(上)(redis面试必会6题经典)

  • 2023前端面试题集(含答案)之HTML+CSS篇(一)(2023前端面试题目)

    2023前端面试题集(含答案)之HTML+CSS篇(一)(2023前端面试题目)

  • 税收会计在会计中的应用
  • 收到以前年度退所得税分录
  • 红字发票注明的进项税额转出
  • 以旧换新销售货物时,一律按照新货物的价格缴纳增值税
  • 小规模纳税人出售使用过固定资产
  • 微信企业版支付
  • 资源税类包括哪些税种
  • 开民工工资专户
  • 固定资产盘亏计入什么科目
  • 销货清单和送货单的区别
  • 甲是乙公司依法设立的分公司
  • 外经证预缴税款之后剩下的税款交到哪呢
  • 出口退税退的是哪部分税
  • 股权变更印花税双方都要交吗
  • 税款滞纳金如何免除
  • 公务用车用油
  • 公司发票限额按什么计算
  • 增值税发票选择确认平台证书密码是多少
  • 拆迁安置土地的补偿标准
  • 委外加工企业怎么样降本
  • 其他业务收入怎么填纳税申报表
  • 跨期做账如何处理当事人
  • 公司购买的办公桌椅属于固定资产吗
  • 进口货物内销的增值税处理
  • 未立项进行建设
  • 购进产品样品怎么做分录
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • 土建工程成本核算怎么做
  • linux中php的作用
  • 文字转换表格怎么设置行列
  • win10系统如何更改工作组
  • 长期借款利息费用的资本化账务处理
  • file*fp什么意思
  • uniapp 安卓原生
  • 如何用php制作表格
  • 加油费属于什么费用类别的
  • redirect_uri参数错误的解决方法(必看)
  • 外汇申报是什么意思
  • 收入凭证填写
  • css calculate
  • 开源ei
  • vue前端面试官常问的问题
  • 预计负债的主要账务处理
  • 为什么费用报销先由主管部门审批在由财务审核
  • 消防收费标准
  • 品种法成本核算的程序有哪几步?
  • 税务申报核定销售额在哪填写
  • 利润分配转作股本的股利属于什么科目
  • 非正常损失的货物
  • 佣金是买卖股票都收吗
  • 事业单位的财政拨款怎么做账
  • 增值税期末留抵税额是什么意思
  • 外出经营活动需要预缴税款吗2020年
  • 一次性伤残就业补助金怎么领取
  • 企业外购的无形资产的成本包括
  • 当月扣缴社保分录
  • 咨询企业发生的费用计入
  • 税交多了可以退吗
  • 递延收益的会计处理
  • 月末库存商品的成本怎么算
  • win10虚拟桌面版
  • 文件夹字体变成蓝色怎么恢复
  • ubuntu下安装deb文件
  • win8怎么关闭系统更新
  • linux修改系统日期命令
  • Win10预览版怎么变回正式版
  • WIN10怎么彻底删除works2
  • eclipse怎么装插件
  • cocos2d js教程
  • Extjs TimeField 显示正常时间格式的代码
  • python 字典怎么用
  • 九宫寓意和象征
  • 有效的沟通的好处
  • 通用税务采集软件有哪些
  • 开个人发票有什么好处?
  • 国税备案的作用是什么
  • 增值税是要上交给国家的吗?
  • 安置房公摊面积多少属于正常范围
  • 湖北省税务发票
  • 税务局诉讼
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设