3.登錄/退出功能


登錄概述

1.登錄業務流程
①在登錄頁面輸入用戶名和密碼
②調用后台接口進行驗證
③通過驗證之后,根據后台的響應狀態跳轉到項目頁
2.登錄業務的相關技術點

  • http 是無狀態的
  • 通過cookie在客戶端記錄狀態
  • 通過session在服務器端記錄狀態
  • 通過token方式維持狀態

說明:現在做的這個vue項目運行在一個新的端口號,服務器可能與前端vue項目之間存在跨域問題,
如果前端和后台接口之間不存在跨域問題,那么推薦大家使用cookie和session來記錄登錄狀態,
反之,如果前端與服務器之間存在跨域問題,那么需要使用token的方式來維持登錄狀態。

登錄——token原理分析

登錄功能實現

1.登錄頁面的布局
通過Element-UI組件實現布局

  • el-form
  • el-form-item
  • el-input
  • el-button
  • 字體圖標

創建一個子分支

git checkout -b 分支的名字
例:git checkout -b login

查看當前項目中的所有分支

git branch

登錄功能實現

路由導航守衛控制訪問權限

如果用戶沒有登錄,但是直接通過URL訪問特定頁面,需要重新導航到登頁面。

//為路由對象,添加beforeEach導航守衛
//to代表將要訪問的頁面路徑,from代表從哪個頁面路徑跳轉而來的,next代表一個放行的函數
router.beforeEach((to,from,next)=>{
    //如果用戶訪問的登錄頁,直接放行
    if(to.path==='/login') return next()
    //從sessionStorage中獲取到保存的token值
    const tokenStr=window.sessionStorage.getItem('token')
    //沒有token,強制跳轉到登錄頁
    if(!tokenStr) return next('/login')
    next()
})

退出

退出功能實現原理

基於token的方式實現退出比較簡單,只需要銷毀本地的token即可。這樣,后續的請求就不會攜帶
token,必須重新登錄生成一個新的token之后才可以訪問頁面。

//清空token
window.sessionStorage.clear()
//跳轉到登錄頁
this.$router.push('/login')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM