第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

登錄攔截邏輯問題?

登錄攔截邏輯問題?

九州編程 2018-11-14 13:13:28
現(xiàn)在我輸入賬號密碼,瀏覽器發(fā)送請求,成功返回了token;想問的是:這個token我是放在cookie里好還是localStorage好呢?還有就是其他頁面的登錄攔截怎么處理?是判斷cookie或者localStorage里有token就放行嗎?(如果是,別人隨便造一個token也可以放行了啊)還有成功的返回的超時時間是怎么用,是放在cookie里面嗎?還是我的思路是錯的?
查看完整描述

1 回答

?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊

用戶認(rèn)證成功后,服務(wù)端返回的 token 值,前端一般存在 localStorage 里。
每次發(fā)出請求的時候,把該 token 放在請求頭即可。
下面以 axios為例:


// http request 攔截器

api.interceptors.request.use(config => {

  if (window.localStorage.ACCESS_TOKEN) {

    config.headers.Authorization = 'Bearer ' + window.localStorage.ACCESS_TOKEN

  }

  return config

}, error => {

  return Promise.reject(error)

})


// http response 攔截器

api.interceptors.response.use(response => {

  if (response.status === 401) { // token過期

    window.localStorage.removeItem('ACCESS_TOKEN')

    router.replace({

      path: '/user/login',

      query: {

        redirect: router.currentRoute.fullPath

      }

    })

  }

  return response

}, error => {

  return Promise.reject(error)

})

頁面的登錄攔截以 vue.js 的 vue-router 為例:

// 導(dǎo)航鉤子

router.beforeEach((to, from, next) => {

  // 檢查登錄狀態(tài)

  store.commit(types.CHECKOUT_LOGIN_STATUS)

  if (to.matched.some(record => record.meta.requiresAuth)) { // 判斷該路由是否需要登錄權(quán)限

    if (window.localStorage.ACCESS_TOKEN) { // 如果本地存在 access_token,則繼續(xù)導(dǎo)航

      next()

    } else {

      if (name === 'userLogin') {

        next()

      } else {

        next({ // 登錄成功后,自動跳轉(zhuǎn)到之前的頁面

          path: '/user/login',

          query: {

            redirect: to.fullPath

          }

        })

      }

    }

  } else {

    next()

  }

})

另外 token 值一般是很難偽造的,因為每次請求都會向后端去驗證該 token 值的有效性。

查看完整回答
反對 回復(fù) 2018-12-12
  • 1 回答
  • 0 關(guān)注
  • 383 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號