位置: IT常识 - 正文

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

发布时间:2024-01-26
实现思路: 用户登录时若勾选“记住我”功能选项,则将登录名和密码(加密后)存入本地缓存,下次登录页面加载时自动获取保存好的账号和密码(需解密),回显到登录输入框中。 说到存入本地缓存,大家想到的一定是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漏洞)

  • 个税手续费返还要交增值税吗
  • 出口退税申报的发票无电子信息是什么意思
  • 以前年度调整损益借方表示什么
  • 办公家具发票要交税吗?
  • 个体户定额交税还用交个税吗
  • 技改贴息资金的财务、会计及税收处理
  • 房地产开发企业资质等级有几个
  • 外币借款汇兑差额计入什么科目
  • 商业企业的商品销售额、职工人数是( )
  • 商业企业购入商品会计分录
  • 事业单位借款怎么做账
  • 社会团体收到的投资款怎么入账
  • 订金退回怎么做账
  • 计提工资后发放时结转到什么科目
  • 营改增后银行增值税如何缴纳
  • 租房提取的话可以全部提取吗
  • 增值税发票如何读入金税盘
  • 房产税税率2023税率表
  • 业务招揽方式
  • 城建税及教育费附加计提表
  • 完全成本法下期间费用应当包括
  • 票据再质押
  • 临时取得收入开具发票
  • 进口报关单保费
  • 空调安装费计入什么科目
  • Win11 Dev Build 22000.65开发预览版推送(附更新修复已知问题汇总)
  • 无法删除文件提示怎么办
  • 如何打印word文档手机上
  • 公司自用产品 抵税吗?
  • 公司之间往来借款利息怎么记账
  • php封装api
  • 生产企业出口退税计算
  • PHP:session_start()的用法_Session函数
  • php中file
  • Laravel 5.4因特殊字段太长导致migrations报错的解决
  • 报销凭证写错了怎么办
  • php计算给定日期的时间
  • 命令行修改mbr
  • 企业年报经营状态
  • 开出租车怎么租车
  • 哪些计入管理费用哪些计入资本公积
  • mysql有输入输出语句
  • 外币汇兑损益怎么计算
  • 购买电梯会计账务处理
  • 网上申报纳税注销流程
  • 企业金融资产包括
  • 装修款需要开发票吗
  • 以摊余成本计量的债权投资与以公允价值计量且其变动
  • 接受捐赠要确认收入吗
  • 存货核算方法有五种
  • 工程施工人工费,材料费,机械费占多少比例
  • 贷款减值准备如何计算
  • 工业用电交税怎么算
  • 补缴以前年度养老保险分录
  • 管理费用中的水电费怎么记账
  • 股东利润分配预缴税款
  • 开票6个点怎么计算
  • 电脑属于固定资产哪类
  • 账簿的设置和登记要点
  • 设置密码保护的pdf怎么转word
  • sql纵向排列改为横向
  • mysql存emoji表情
  • windows7的内存基本要求
  • win71
  • win7双硬盘双系统
  • Ubuntu如何安装软件
  • mac系统怎么创建用户
  • win10 edge浏览器崩溃
  • jquery()
  • nodejs引入模块
  • Unity3D游戏开发标准教程
  • python生成随机
  • 创建一个新用户user1,设置其主目录为/home/user1:
  • JavaScript中数组长度的属性
  • python函数的方法
  • 收购发票怎么抵扣申报
  • 外省车险保单,有何不利的事
  • 国税局政审审考生什么
  • 购置税缴费方式
  • 玉石手镯零售环保要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号