如何选择合适的建站公司,网络营销是指,常州哪家做网站便宜,南宁做网站记住密码功能
在请求登录接口成功后#xff0c;我们需要判断用户是否勾选记住密码#xff0c;如果是#xff0c;则将记住密码状态、账号信息存入本地。 下次登录时#xff0c;获取本地的记住密码状态#xff0c;如果为true则获取本地存储的账号信息#xff0c;将信息回填…记住密码功能
在请求登录接口成功后我们需要判断用户是否勾选记住密码如果是则将记住密码状态、账号信息存入本地。 下次登录时获取本地的记住密码状态如果为true则获取本地存储的账号信息将信息回填登录表单。 但是如果密码直接存在缓存里很容易出问题现在我们需要将密码做加密处理。 这里采用 base64 加密方式
base64 简单使用
1、安装 base64
npm install --save js-base642、引入base64
// js中任意位置都可引入
let Base64 require(js-base64).Base64;3、可以通过encode和decode对字符串进行加密和解密
let Base64 require(js-base64).Base64;let pwd Base64.encode(a123456);
console.log(pwd); // YTEyMzQ1Nglet pws2 Base64.decode(YTEyMzQ1Ng);
console.log(pwd2); // a123456需要注意的是Base64是可以解密的所以单纯使用Base64进行加密是不安全的所以我们要对Base64进行二次加密操作生成一个随机字符串 Base64的加密字符。
高级使用
随机字符串的生成方式
/**** param {number} num 需要生成多少位随机字符* return {string} 生成的随机字符 */
const randomString (num) {let str ,arr [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z];let index null;for (let i 0; i num; i) {index Math.round(Math.random() * (arr.length - 1));str arr[index];}return str;
}二次加密
let pwd randomWord(11) Base64.encode(password); // J8ndUzNIPTtYTEyMzQ1Ng加密完将加密的密码通过微信的方法 wx.setStorageSyn 存在缓存中
// 我们这里使用微信小程序的存储方式wx.setStorageSync
let account {username: test‘,password: pwd}
wx.setStorageSync(account, account)自动登陆
init() {let state wx.getStorageSync(rememberMe)if (state) {let account wx.getStorageSync(account)let Base64 require(js-base64).Base64;let pwd Base64.decode(account.password.slice(11))this.setData({username: account.username,password: pwd})}this.setData({ rememberMe: state })}