国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue實現(xiàn)免密登錄跳轉(zhuǎn)的方式

這篇具有很好參考價值的文章主要介紹了Vue實現(xiàn)免密登錄跳轉(zhuǎn)的方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需求背景:

最近接到這樣一個需求,點擊某個url要跳轉(zhuǎn)到某個系統(tǒng)的首頁。

實現(xiàn)思路:

首先,我們要明確一個點,系統(tǒng)中所有的操作都要攜帶Token去發(fā)送請求,而登錄一般是獲取Token的來源,點擊url實現(xiàn)跳轉(zhuǎn),并不意味著,不需要登錄,只是我們在點擊url的過程中,去幫助用戶去做登錄跳轉(zhuǎn)的操作。達成了這個共識,我們就好去實現(xiàn)了,方案如下:

方案一:url中必須有某個標識,用于判斷是否免登錄,比如:http://localhost:8300/#/login?isFreeLogin=1

通過判斷isFreeLogin==1去判斷是否免登錄,如果免登錄,則通過固定的賬號、密碼或者是在url中攜帶賬號、密碼(不安全)。然后抓取url中的參數(shù),調(diào)登錄接口,實現(xiàn)跳轉(zhuǎn)。具體的實現(xiàn)如下:

router.beforeEach((to, from, next) => {
  NProgress.start()
  const { isFreeLogin, password } = getQueryVariable()
  const url = window.location.href
  // 存在特殊字符的處理方式
  const passwordPattern = /[!@#%$^\\| ]/
  if (password && passwordPattern.test(password)) { 
    const newUrl = url.replace(/(password=)[^&]*/, `$1${tranAscii(password)}`)   //密碼中的特殊字符用一個別的特定字符替代
    window.location.href = newUrl
  } else {
    if (Number(isFreeLogin) === 1 && to.path === '/login' && from.path == '/') {
      loadingInstance = Loading.service({
        background: 'rgba(255,255,255,0.1)',
        text: '頁面跳轉(zhuǎn)中...',
        customClass: 'login-loading',
        spinner: 'el-icon-loading'
      })
      setFormData(() => {
        next()
      })
    } else {
      if (to.path === '/') return next('/login')
      const token = localStorage.getItem('Admin-Token')
      if (!token && to.path !== '/login') return next('/login')
      next()
    }
  }
})

router.afterEach((to, from) => {
  NProgress.done()
  loadingInstance.close()
})
export default router

function setFormData(cb) {
  // 判斷url后是否攜帶?isFreeLogin=1參數(shù),如果存在,則免登錄
  const { username, password, isFreeLogin } = getQueryVariable()
  if (isFreeLogin && Number(isFreeLogin) === 1) {
    if (username !== undefined && password !== undefined) {
      Vue.prototype.loginForm = {
        username: username.trim(),
        password: password.trim()  //此處密碼要做同步處理
      }
    } else {
      Message.error({
        showClose: true,
        message: '用戶名或密碼為空!'
      })
      cb && cb()
    }
  }
  if (JSON.stringify(Vue.prototype.loginForm) !== '{}') {
    handleLogin(Vue.prototype.loginForm, cb)
    Vue.prototype.loginForm = {}
  }
}

//登錄邏輯
async handleLogin(form,cb){
try{
await login(form)
cb&&cb()
}catch{
cb&&cb()
}
}

?要注意一下兩個問題:

(1)url中因為攜帶了賬號、密碼,密碼可能會存在特殊字符,如果后端接口做了特殊字符的過濾,可能會報400的錯誤

(2)要處理url中未攜帶賬號密碼的情況(你可以用個固定的賬號、密碼)以及賬號、密碼錯誤的情況。

以上代碼包含了上述問題的處理

方案二:通過后端去處理。點擊url的時候,給后端發(fā)一個請求,讓后端返回登錄賬號信息,然后前端調(diào)用登錄接口,實現(xiàn)頁面跳轉(zhuǎn)。

如果有更好的方案,歡迎評論、留言~文章來源地址http://www.zghlxwxcb.cn/news/detail-552775.html

到了這里,關(guān)于Vue實現(xiàn)免密登錄跳轉(zhuǎn)的方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 利用vue-router跳轉(zhuǎn)的幾種方式

    ?1 router-link 2 this.$router.push ? ? 跳轉(zhuǎn)到指定路徑,并將跳轉(zhuǎn)頁面壓入history棧中,也就是添加了一個頁面記錄。 3 this.$router.replace ? ? 跳轉(zhuǎn)到指定路徑,將history棧中的當前頁面替換為跳轉(zhuǎn)到的頁面。 4 this.$router.go(n) ? ? 在histroy棧中向前或者向后跳轉(zhuǎn)n個頁面,n可為正整數(shù)或負

    2024年02月12日
    瀏覽(26)
  • vue3 route跳轉(zhuǎn)的new tab兩種方式

    Vue有兩種類型的應用SPA和MAP,本文主要介紹的是SPA類型下面的使用方法 單頁面應用,即一個web項目就只有一個頁面(即一個HTML文件) 這種類型通常都需要router來進行頁面跳轉(zhuǎn). 一開始只需要加載一次js、css的相關(guān)資源。所有內(nèi)容都包含在主頁面,對每一個功能模塊組件化。單

    2024年02月09日
    瀏覽(17)
  • vue實現(xiàn)路由跳轉(zhuǎn)的方法

    ????????router-link是vue中提供的一種跳轉(zhuǎn)頁面的相關(guān)方式 1.其中router-link中使用v-bind綁定了一個對象(其實也可以理解成路由跳轉(zhuǎn)的目的地) 2.其中有兩種跳轉(zhuǎn)方法,1-利用你的路由名字來進行跳轉(zhuǎn)(推薦跳轉(zhuǎn)的方法) ?2-利用路由的path來進行跳轉(zhuǎn),但使用這種方法來進行跳轉(zhuǎn)有

    2024年02月09日
    瀏覽(25)
  • 常見路由跳轉(zhuǎn)的幾種方式

    常見路由跳轉(zhuǎn)的幾種方式

    常見的路由跳轉(zhuǎn)有以下四種: 1. router-link to=\\\"跳轉(zhuǎn)路徑\\\"? 也可,如 2. this.$router.push() 跳轉(zhuǎn)到指定的url,并在history中添加記錄(即,點擊回退,會退回上一個頁面) 。 html中,如: 3. this.$router.replace() 跳轉(zhuǎn)到指定的url, 但不會在history記錄(即,點擊回退 退回到上上個頁) 4

    2024年02月10日
    瀏覽(29)
  • uniapp頁面跳轉(zhuǎn)的幾種方式

    uniapp頁面跳轉(zhuǎn)的幾種方式

    定義:保留當前頁面,跳轉(zhuǎn)到應用內(nèi)的某個頁面,使用uni.navigateBack可以返回到原頁面。 使用: 定義:可以關(guān)閉當前界面并跳轉(zhuǎn)到其他的非tabbar界面(可帶參數(shù)) 使用: 定義:關(guān)閉所有頁面,打開到應用內(nèi)的某個頁面(可帶參數(shù)) 使用: 定義:跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其

    2024年02月01日
    瀏覽(24)
  • uniapp路由跳轉(zhuǎn)的六種方式

    uniapp路由跳轉(zhuǎn)的六種方式

    uniapp官方文檔詳解: 一、uni.navigateTo保留當前頁面,跳轉(zhuǎn)到應用內(nèi)的某個頁面,使用uni.navigateBack可以返回到原頁面。 注意: 頁面跳轉(zhuǎn)路徑有層級限制,不能無限制跳轉(zhuǎn)新頁面 跳轉(zhuǎn)到 tabBar 頁面只能使用 switchTab 跳轉(zhuǎn) 二、uni.redirectTo關(guān)閉當前頁面,跳轉(zhuǎn)到應用內(nèi)的某個頁面。

    2024年02月11日
    瀏覽(31)
  • uniapp頁面跳轉(zhuǎn)的幾種方式 以及舉例(2)

    uniapp頁面跳轉(zhuǎn)的幾種方式 以及舉例(2)

    又來混時長 嫖流量卷了 保留當前頁面,跳轉(zhuǎn)到應用內(nèi)的某個頁面,使用 uni.navigateBack 可以返回到原頁面。 ? 關(guān)閉當前頁面,跳轉(zhuǎn)到應用內(nèi)的某個頁面。 ? 關(guān)閉所有頁面,打開到應用內(nèi)的某個頁面。 跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其他所有非 tabBar 頁面。 關(guān)閉當前頁面,返回上一

    2024年01月19日
    瀏覽(83)
  • 微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?

    微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?

    微信小程序擁有 web 網(wǎng)頁和 Application 共同的特征,我們的頁面都不是孤立存在的,而是通過和其他頁面進行交互,來共同完成系統(tǒng)的功能 在微信小程序中,每個頁面可以看成是一個 pageModel , pageModel 全部以棧的形式進行管理 常見的微信小程序頁面跳轉(zhuǎn)方式有如下: wx.navig

    2024年02月01日
    瀏覽(21)
  • 【面試合集】說說微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?

    【面試合集】說說微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?

    微信小程序擁有 web 網(wǎng)頁和 Application 共同的特征,我們的頁面都不是孤立存在的,而是通過和其他頁面進行交互,來共同完成系統(tǒng)的功能 在微信小程序中,每個頁面可以看成是一個 pageModel , pageModel 全部以棧的形式進行管理 常見的微信小程序頁面跳轉(zhuǎn)方式有如下: wx.navig

    2024年01月19日
    瀏覽(19)
  • keycloak~登錄步驟頁login-actions/authenticate出現(xiàn)無限次302跳轉(zhuǎn)的原因與解決

    keycloak~登錄步驟頁login-actions/authenticate出現(xiàn)無限次302跳轉(zhuǎn)的原因與解決

    keycloak通過k8s部署,并進行了集群部署,共2個節(jié)點 通過域名解析后,直接到外網(wǎng)LB,在LB上配置了k8s-ingress的IP,端口是80和443 在keycloak應用的ingress配置中,對域名進行了keycloak服務(wù)的綁定 有時間無法完成登錄,點登錄后,刷新了一次登錄頁,未完成登錄行為 有時在登錄時,出

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包