中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

河北省人大建設研究會網站建一個網站需要多少錢?

河北省人大建設研究會網站,建一個網站需要多少錢?,深圳市中心,做刀網站登錄業(yè)務實現(xiàn): 登錄成功/失敗實現(xiàn) -> pinia管理用戶數據及數據持久化 -> 不同登錄狀態(tài)的模板適配 -> 請求攔截器攜帶token(登錄鑒權) -> 退出登錄實現(xiàn) -> token失效(401響應攔截) 1. 登錄成…

?登錄業(yè)務實現(xiàn):

登錄成功/失敗實現(xiàn)? ->? pinia管理用戶數據及數據持久化? ->? 不同登錄狀態(tài)的模板適配?? ->? 請求攔截器攜帶token(登錄鑒權? ->? 退出登錄實現(xiàn)? ->? token失效(401響應攔截)


?

1. 登錄成功/失敗實現(xiàn)

表單校驗通過時,封裝登錄接口,調用登錄接口,分別處理 登錄成功和登陸失敗的情況。

登錄成功,則提示用戶,并跳轉首頁

登錄失敗,報錯。-> 攔截器統(tǒng)一報錯(配置一次 多接口生效)

2. pinia管理用戶數據及數據持久化

因為用戶數據可能在多組件中進行共享,使用 pinia對用戶數據進行管理。與數據有關的操作置于pinia中,組件只負責觸發(fā)action函數

(1) pinia管理數據?

// 定義store
export const useUserStore = defineStore('模塊名', ()=>{// 1. 定義stateconst userInfo = ref({})// 2. 定義actionconst getUserInfo = () => {...}// 3. 以對象的形式return state/actionreturn {...}
})
// 使用store
import { useXXXStore } from '@/stores/XXXStore'const xxXStore = useXXXStore()
xxXStore.getXX()

?(2)持久化用戶數據

token:用戶數據中 用于標識當前用戶是否登錄,持續(xù)一段時間會過期。

由于pinia是基于內存的,刷新會丟失,為保持登陸狀態(tài)(刷新不丟失),要配合持久化進行存儲

-> 操作state時,自動把用戶數據在本地的localStore中也存一份,(刷新時 從localStore中先取

操作步驟:

1)安裝插件包: npm i pinia-plugin-persistedstate

2)注冊插件:

// main.js 入口文件中
const pinia = createPinia()
pinia.use(piniaPluginPersistedState)

3)持久化配置 存入localStore:

// 定義store中,添加配置項(第三個參數),用于持久化配置
defineStore('',()=>{...
},{// 持久化配置,存入lspersist:{enabled: true}
})

3. 不同登錄狀態(tài)的模板適配(多模板適配)

多模板適配 思路:登錄時顯示第一塊,非登錄時顯示第二塊

判斷條件:是否有token

<template v-if="userStore.userInfo.token">...
</template>
<template v-else>...          
</template>

4. 請求攔截器攜帶token

token作為用戶標識,多個接口要正確攜帶token才能正確顯示數據 -> 在接口調用時攜帶token -> 采用攔截器攜帶(便于 統(tǒng)一控制)

解決: 請求攔截器可以在接口發(fā)起前 對請求參數進行操作。通常token被注入到請求header中,格式按照后端要求的格式進行拼接

// utils/http.js中// axios請求攔截器
httpInstance.interceptors.request.use(config => {// 請求攔截器攜帶token(->按后端要求拼接token數據),使得多個接口攜帶tokenconst userStore = useUserStore()const token = userStore.userInfo.tokenif(token){config.headers.Authorization = `Bearer ${token}`    //按后端的要求拼接}return config
},e => Promise.reject(e))

5. 退出登錄實現(xiàn)

點擊退出登錄時,防止誤觸,彈出一個氣泡確認框(el-popconfirm)進行二次確認。

退出登錄業(yè)務邏輯: 清除用戶數據;跳轉到登錄頁

// 組件中,views/XXX.vue
<el-popconfirm @confirm="confirm" title="確認退出嗎?" confirm-button-text="確認" cancel-button-text="取消"><template #reference><a href="javascript:;">退出登錄</a></template>
</el-popconfirm>
// store中(stores/XXX.js),定義清除用戶信息的action
const clearUserInfo = ()=>{userInfo.value = {}
}
return {clearUserInfo
}...// 組件中(views/XXX.vue),實現(xiàn)退出登錄業(yè)務的邏輯
import { useRouter } from 'vue-router'
const router = useRouter()
const confirm = ()=>{userStore.clearUserInfo()    // 1. 清除用戶數據(  -> 調用action進行操作)    router.push('/login')        // 2. 轉到登錄頁
}    

6. token失效(401攔截)

token有效性保持一段時間,如果用戶不做任何操作,token會失效,使用失效的token去請求一些接口,接口就會報401狀態(tài)碼錯誤。

?解決:在axios響應攔截器做統(tǒng)一處理

// 401攔截
import router from '@/router'    //js中的路由對象!!// axios響應式攔截器中
httpInstance.interceptors.response.use(res => res.data, e => {const userStore = useUserStore()...// 401失效處理: 1.清除用戶數據 2. 跳轉if(e.response.status === 401){userStore.clearUserInfo()router.push('/login')}return Promise.reject(e)
})export default httpInstance

參考:Popconfirm 氣泡確認框 | Element Plus

ElementUI 教程 - Popconfirm 氣泡確認框

一文教你搞定所有前端鑒權與后端鑒權方案,讓你不再迷惘 - 掘金 (juejin.cn)

http://m.risenshineclean.com/news/64930.html

相關文章:

  • 只做傳統(tǒng)嫁衣網站移投界seo
  • dw 如何做自適應網站今天的新聞有哪些
  • 網站建設模板是什么意思網站構建的基本流程
  • 寧波市住宅建設集團網站北京營銷推廣公司
  • 漣水做網站百度指數批量獲取
  • 桂林市做網站的公司個人博客登錄入口
  • 誰做彩票網站代理互聯(lián)網網絡推廣公司
  • 如何做班級網站長沙seo排名公司
  • 介紹網站開發(fā)的意義微信軟文模板
  • 廣州番禺網站建設b站網頁入口
  • 做直播網站用什么語言網頁設計成品源代碼
  • 網站建設屬于服務還是貨物推廣普通話繪畫
  • 用dw怎么做登錄頁面的網站個人網頁
  • 網站建設公司報價seo是付費還是免費推廣
  • wordpress博客案例seo網絡優(yōu)化軟件
  • 重慶做網站個人谷歌搜索引擎下載
  • 做淘寶客網站用什么系統(tǒng)線上推廣怎么做
  • 做農資的網站網站流量統(tǒng)計工具有哪些
  • cms做網站后臺互聯(lián)網推廣的方式
  • 網站日志怎么做網站收錄一鍵提交
  • wordpress中文免費模板下載寧波seo外包推廣公司
  • 蘇州網站網絡營銷推廣石家莊seo代理商
  • 小程序大概需要多少錢南京seo圈子
  • 山南網站建設網絡平臺推廣方案
  • 做編程題的網站全國新冠疫苗接種率
  • seo營銷網站的設計標準百度快照優(yōu)化
  • 有什么專門搜試卷做的網站app推廣平臺排行榜
  • 重慶裝修貸廣州seo服務外包
  • 廣州天河區(qū)網站建設搜索引擎推廣有哪些
  • 移動端是指手機還是電腦優(yōu)化大師如何刪掉多余的學生