若依前后端分離/微服務版怎樣構造免密鏈接實現其他系統免登錄訪問


場景

若依前后端分離版手把手教你本地搭建環境並運行項目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

上面在搭建起來前后端分離版的項目后,別的系統要實現通過跳鏈接的方式直接跳轉到

使用若依搭建的系統中從而不用登錄就能訪問系統。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

1、效果

 

 

2、若依前后端分離版與微服務版前端關於這塊代碼是一致的。

首先要將系統的前端驗證顯示與校驗與后台的驗證碼校驗去掉。

若依前后端分離版怎樣去掉登錄驗證碼:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/120388276

微服務版后台去掉驗證碼有不同,要修改網關gateway的代碼

 

 

2、修改前端代碼中permission.js的代碼

 

 

 

 

修改其邏輯中,沒有token時,原本只有if是否在白名單,else進行退出。

現在加一個判斷else if 判斷url中是否帶有參數且參數是否為指定值。

獲取URL中參數的方法為

to.query.aaa

這里的aaa就是在網頁地址欄中?后面緊跟的參數。這里的to為router的beforeEach的參數

 

 

修改這塊的代碼為

    // 沒有token
    if (whiteList.indexOf(to.path) !== -1) {
      // 在免登錄白名單,直接進入
      next()
    } else if (to.query.aaa === '1') {
      let username = 'admin'
      let password = 'admin123'
      store.dispatch('Login', {username, password}).then(() => {
        router.push({path: "/index"}).catch(err => {

        });
      })
    }else {
      next(`/login?redirect=${to.fullPath}`) // 否則全部重定向到登錄頁
      NProgress.done()
    }

 

修改位置

 

 

這里的邏輯就是判斷如果URL中含有參數aaa並且值為1那么就走登錄邏輯,並且通過指定的賬戶密碼,這里使用的超級管理員的用戶密碼。

這樣可以指定分配對應的賬戶,賬戶分配角色,角色擁有對應的權限,一般是只有查詢權限。

然后在瀏覽器中直接輸入:

http://localhost:1000/?aaa=1

進行驗證,localhost改為服務器Ip即可。


免責聲明!

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



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