当前位置: 首页 > news >正文

16. Vue-element-template记住密码

Vue-element-template 记住密码

1. 在登录页面添加记住密码按钮

  1. 新增参数 rememberMe

    # resources/src/views/login/index.vueloginForm: {username: 'admin',password: '123456',rememberMe: false},
    
  2. 添加复选框

    # resources/src/views/login/index.vue<div style="margin-bottom: 20px;"><el-checkbox v-model="loginForm.rememberMe"><span style="color: #fff; font-size: 12px;"> 记住我 </span></el-checkbox></div>
    
  3. 提交参数

    # resources/src/views/login/index.vuehandleLogin() {…………不用改}
    

2. 在 user module 里改造login方法

  1. 获取 rememberMe 参数, 传给 setToken 方法

    # resources/src/store/modules/user.jslogin({ commit }, userInfo) {const { username, password, rememberMe } = userInforeturn new Promise((resolve, reject) => {login({ username: username.trim(), password: password }).then(response => {const { data } = responsecommit('SET_TOKEN', data.token)setToken(data.token, rememberMe)resolve()}).catch(error => {reject(error)})})},
    
  2. 修改setToken方法, 保存到localStorage

    #resources/src/utils/auth.jsexport function setToken(token, persistent = false) {if (persistent) {Cookies.set(TokenKey, token);return localStorageSetItem(TokenKey, token)} else {return Cookies.set(TokenKey, token)}
    }export function localStorageSetItem(key, value) {const curTime = new Date().getTime()localStorage.setItem(key, JSON.stringify({data: value, time: curTime}))
    }
    
  3. 修改 getToken 和 removeToken

    #resources/src/utils/auth.js
    const TokenKey = 'AUTH-TOKEN';
    const EXP = 30;export function getToken() {let token = Cookies.get(TokenKey)if (!token) {token = localStorageGetItem(TokenKey, EXP)}return token
    }export function removeToken() {localStorageRemoveItem(TokenKey)return Cookies.remove(TokenKey)
    }export function localStorageGetItem(key, exp) {const data = localStorage.getItem(key)const dataObj = JSON.parse(data)if (dataObj === null || new Date().getTime() - dataObj.time > exp * 864e+5) {return null} else {return dataObj.data}
    }export function localStorageRemoveItem(key) {localStorage.removeItem(key)
    }
    

3. 测试

➜  Genes-Admin git:(ogenes) ✗ npm run watch

image-20220901102914341

image-20220901102937796

4. 定义相关文案的翻译,修改默认文案

#resources/src/i18n/langs/en/login.js
#resources/src/i18n/langs/zh_CN/login.js
#resources/src/i18n/langs/zh_HK/login.js之前已经翻译过
export const login = {……rememberMe: '記住我',……
}
#<span style="color: #000; font-size: 12px;"> 记住我 </span>
<span style="color: #000; font-size: 12px;"> {{ $t("loginForm.rememberMe") }} </span>
http://www.lryc.cn/news/91452.html

相关文章:

  • Python文件打包成exe文件
  • 【简单实用框架】【十大排序算法直接调用】【可移植】
  • 微服务架构之RPC调用
  • One2Multi Graph Autoencoder for Multi-view Graph Clustering
  • Java编程实现输入数的阶乘(for循环):读入一个小于 10 的整数 n,输出它的阶乘 n。(for循环)
  • 算法提高-搜索-FloodFill和最短路
  • 【蓝桥杯单片机第八届国赛真题】
  • 一种简单的Android骨架屏实现方案----0侵入0成本
  • 【Kubernetes 架构】了解 Kubernetes 网络模型
  • shell
  • springboot+ssm+java校园二手物品交易系统vxkyj
  • Android系统内置应用
  • CMMI实施需要准备什么:
  • 【ARM AMBA AXI 入门 1 - AXI 握手协议】
  • 详解uni-app应用生命周期函数
  • 【WebFlux】List指定bean引用对象更新后同步到List
  • 【JavaSE】Java基础语法(二十六):Collection集合
  • jmeter做接口压力测试_jmeter接口性能测试
  • 网络编程 lesson5 IO多路复用
  • 码出高效_第一章 | 有意思的二进制表示及运算
  • 测试类型(单元、集成、系统或手动测试)
  • 【笔试强训编程题】Day3.(字符串中找出连续最长的数字串 69385)和(数组中出现次数超过一半的数字 23271)
  • 学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解
  • Android 12.0SystemUI 状态栏下拉和通知栏始终居中
  • 面向过程编程和面向对象编程的区别
  • 2023年数学与人工智能国际会议——火热征稿中~
  • 格式化数字的实用命令:numfmt
  • 传统的交叉熵函数如何通过平滑处理可以适用于多标签分类任务
  • 关于Netty的一些问题
  • Java - ThreadLocal数据存储和传递方式的演变之路