若依前后端分离/微服务版怎样构造免密链接实现其他系统免登录访问

场景

若依前后端分离版手把手教你本地搭建环境并运行项目:

若依前后端分离版手把手教你本地搭建环境并运行项目_BADAO_LIUMANG_QIZHI的博客-CSDN博客

上面在搭建起来前后端分离版的项目后,别的系统要实现通过跳链接的方式直接跳转到

使用若依搭建的系统中从而不用登录就能访问系统。

注:

博客:
BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、效果

2、若依前后端分离版与微服务版前端关于这块代码是一致的。

首先要将系统的前端验证显示与校验与后台的验证码校验去掉。

若依前后端分离版怎样去掉登录验证码:

若依前后端分离版怎样去掉登录验证码_BADAO_LIUMANG_QIZHI的博客-CSDN博客

微服务版后台去掉验证码有不同,要修改网关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即可。

Guess you like

Origin blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/121142627