国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

演示Vue實現記住賬號密碼功能的思路和代碼

3403771864 / 788人閱讀

  實現思路:

  情景:在用戶登錄時若勾選“記住我”功能選項,則將登錄名和密碼(加密后)存入本地緩存,下次登錄頁面加載時自動獲取保存好的賬號和密碼(需解密),回顯到登錄輸入框中。

  在本地緩存可以用cookies、localStorage、sessionStorage,但這些都有很多不同的差異,不多說廢話。直接說使用我們的,在未設置過期時間,關閉瀏覽器窗口后就被清除了,顯然是符合我們開發需求的,localStorage呢除非主動清除localStorage里的信息,否則將永遠存在,關閉瀏覽器窗口后下次啟動任然存在,這個也是符合我們開發需求的,根據業務需求我選擇的是localStorage。

1.png


  <el-form
  ref="loginForm"
  :model="loginForm"
  :rules="loginRules"
  class="login-form"
  auto-complete="on"
  label-position="left"
  >
  <div class="user-login">
  <div class="title-container">
  <span class="title">用戶登錄</span>
  <span class="annotation">BACKGROUND LOGIN</span>
  </div>
  <div class="core-container">
  <el-form-item prop="username">
  <span class="svg-container">
  <i class="icon el-icon-user" />
  </span>
  <el-input
  ref="username"
  v-model="loginForm.username"
  placeholder="請輸入用戶名稱"
  name="username"
  type="text"
  tabindex="1"
  auto-complete="on"
  />
  </el-form-item>
  <el-form-item prop="password">
  <span class="svg-container">
  <i class="icon el-icon-lock" />
  </span>
  <el-input
  :key="passwordType"
  ref="password"
  v-model="loginForm.password"
  :type="passwordType"
  placeholder="請輸入密碼"
  name="password"
  tabindex="2"
  auto-complete="on"
  @keyup.enter.native="handleLogin"
  />
  <span class="show-pwd" @click="showPwd">
  <img
  src="@/icons/png/pawyc.png"
  v-if="passwordType === 'password'"
  />
  <i class="el-icon-view" v-else></i>
  </span>
  </el-form-item>
  <el-checkbox
  v-model="checked"
  label="記住密碼"
  name="type"
  ></el-checkbox>
  </div>
  <el-button
  class="loginBtn"
  :loading="loading"
  type="primary"
  style="width: 100%; margin-bottom: 30px"
  @click.native.prevent="handleLogin(loginForm)"
  >立即登錄</el-button
  >
  </div>
  </el-form>

  記住賬號密碼實現流程

  密碼加密:為提高安全性,密碼存儲前需進行加密處理。目前加密方式有很多種,我這里選用了base64。

  npm安裝base64依賴

  //安裝
  npm install --save js-base64
  //引入
  const Base64 = require("js-base64").Base64

 

  const Base64 = require('js-base64').Base64
  export default {
  data() {
  return {
  loginForm: {
  username: '',
  password: '',
  },
  checked: false,
  };
  },
  mounted () {
  let username = localStorage.getItem('username')
  if (username) {
  this.loginForm.username = localStorage.getItem('username')
  this.loginForm.password = Base64.decode(localStorage.getItem('password'))// base64解密
  this.checked = true
  }
  },
  // 立即登錄
  handleLogin (loginForm) {
  this.$refs.loginForm.validate(async (isOK) => {
  if (isOK) {
  /* ------ 賬號密碼的存儲 ------ */
  if (this.checked) {
  let password = Base64.encode(this.loginForm.password) // base64加密
  localStorage.setItem('username', this.loginForm.username)
  localStorage.setItem('password', password)
  } else {
  localStorage.removeItem('username')
  localStorage.removeItem('password')
  }
  try {
  let encrypt = new JSEncrypt() // 新建JSEncrypt對象
  encrypt.setPublicKey(this.publicKey) // 設置公鑰
  let password = encrypt.encrypt(this.loginForm.password) // 對密碼進行加密
  this.loading = true
  await this['user/login']({
  username: this.loginForm.username,
  password: password,
  captcha: this.captchaKey + ':' + this.loginForm.captcha,
  isRememberMe: this.loginForm.isRememberMe,
  isScanLogin: this.loginForm.isScanLogin ? 1 : 0
  }).then((res) => {
  this.$router.push(
  {
  path:'/transitionPage',
  query:{
  username:this.loginForm.username
  }
  }
  )
  })
  } catch (error) {
  this.$message.error('用戶名或密碼錯誤!')
  } finally {
  // 不論執行try 還是catch 都會執行finally 去關閉轉圈
  this.loading = false
  }
  }
  })
  }
  },
  };

2.png

  看到上面這個就知道已經完成我們的需求了

  這個需求的核心代碼我標一下

  /* ------ 賬號密碼的存儲 ------ */
  if (this.checked) {
  let password = Base64.encode(this.loginForm.password) // base64加密
  localStorage.setItem('username', this.loginForm.username)
  localStorage.setItem('password', password)
  } else {
  localStorage.removeItem('username')
  localStorage.removeItem('password')
  }

     相關內容已講述完畢,歡迎大家后續更多關注。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128197.html

相關文章

  • vue項目實現記住密碼到cookie功能(附源碼)

    摘要:這里不做加密功能源碼鏈接項目實現表單登錄頁保存賬號和密碼到功能覺得對你有幫助的話,下哦。 showImg(https://segmentfault.com/img/remote/1460000013052745?w=443&h=335); 實現功能: 1.記住密碼勾選,點登陸時,將賬號和密碼保存到cookie,下次登陸自動顯示到表單內 2.不勾選,點登陸時候則清空之前保存到cooki...

    zzir 評論0 收藏0
  • vue中使用cookiescrypto-js實現記住密碼加密

    摘要:最后要在狗子函數內判斷用戶是否記住了密碼來執行相關的操作判斷是否記住密碼注意這里的是字符串格式,因為存進中會變成判斷是否記住密碼最后,界面貼上,其中是記住密碼按鈕的值,是第一個框的值,就是第二個框的值啦。 不多BB,搞快、搞快、 使用crypto-js加解密 第一步,安裝 npm install crypto-js 第二步,在你需要的vue組件內import import Crypto...

    khs1994 評論0 收藏0
  • 手摸手,帶你用vue擼后臺 系列二(登錄權限篇)

    摘要:我們將登錄按鈕上綁上事件,點擊登錄之后向服務端提交賬號和密碼進行驗證。所以前端和后端權限的劃分是不太一致。側邊欄最后一個涉及到權限的地方就是側邊欄,不過在前 完整項目地址:vue-element-admin 系列文章: 手摸手,帶你用vue擼后臺 系列一(基礎篇) 手摸手,帶你用vue擼后臺 系列二(登錄權限篇) 手摸手,帶你用vue擼后臺 系列三 (實戰篇) 手摸手,帶你用vu...

    不知名網友 評論0 收藏0
  • Growth Hacker 奇技淫巧一則:零授權,抓取新浪微博任何用戶微博內容

    摘要:由于我需要獲取普通用戶的微博內容,因此還要想辦法繼續繞。默認是勾上的,也即是說微博團隊主觀上是希望用戶勾上這個,從而借助判斷來提高登錄安全性的。我遂果斷取消勾選該選項,輸入任何一個自己的微博賬號密碼,點擊登錄。 有時或基于以下凡此種種需求,我們會想要去抓取新浪微博的內容: 產品冷啟動,導入外部數據,而非從頭積累; 通過大數據+語義分析獲取用戶興趣行為偏好,提供智能推薦; 監控微博輿...

    DevWiki 評論0 收藏0

發表評論

0條評論

3403771864

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<