若依RuoYi-Vue分离版—免登录直接访问

官网说明:如何不登录直接访问

官网有说明:如何不登录直接访问

前端:

前端不登录如何直接访问

如果是前端页面可以在src/permission.js配置whiteList属性白名单即可。

在这里插入图片描述

后端:

方法1:在SecurityConfig.java中设置httpSecurity配置匿名访问

// 使用 permitAll() 方法所有人都能访问,包括带上 token 访问
.antMatchers("/admins/**").permitAll()

// 使用 anonymous() 所有人都能访问,但是带上 token 访问后会报错
.antMatchers("/admins/**").anonymous()

方法2:在对应的方法或类上面使用@Anonymous注解。

前提
匿名访问的方法上面@PreAuthorize权限注解也需要去掉,因为已经使用匿名访问了,权限自然也不需要去验证了。

// 类上定义匿名注解,作用于所有的方法
@Anonymous
@RestController
@RequestMapping("/system/xxxx")
public class SysXxxxController extends BaseController
{
}

// 方法定义匿名注解,作用于单独的方法
@Anonymous
@GetMapping("/list")
public List<SysXxxx> list(SysXxxx xxxx)
{
    return xxxxList;
}

个人测试-前端页面

测试了 菜单配置里面的页面非菜单配置里面的页面

1.ruoyi-ui\src\router 路径下 修改 index.js

在这里插入图片描述

  //该处为免登录访问的路由页面
  {
    path: '/centerprofile',
    component: () => import('@/views/yangdong/centerprofile/index'),
    hidden: true
  },
  {
    path: '/massend',
    component: () => import('@/views/yangdong/terminal/fwfc/index'),
    hidden: true
  },

2.在src/permission.js配置whiteList属性白名单

在这里插入图片描述

//新的白名单路由
const newRoutes = ['/centerprofile', '/massend'];
// 使用扩展运算符合并数组
whiteList.push(...newRoutes);

3.效果展现

3.1 访问地址 http://localhost/centerprofile (菜单管理里面的页面)

在这里插入图片描述
结果:
成功实现了免登录展现页面,
但是由于查询列表接口需要权限(因为这个页面是代码生成器生成的),所以就出现了上图的情况

3.2 访问地址 http://localhost/massend (非菜单管理里面的页面)
在这里插入图片描述

这个页面的的vue代码如下

<template>
  <div class="wrap">
    <div style="border: 1px solid red">
      第一个div:666777888
    </div>
    <div style="border: 1px solid yellow">
      第二个div:
      <iframe src="../centerprofile/index.vue" style="width: 30%;height: 500px"></iframe>
      <iframe src="https://www.csdn.net/" style="width: 60%;height: 500px"></iframe>
      <p v-html="htmlContent"></p>
    </div>
    <div style="border: 1px solid blue">
      第三个div
      <iframe src="http://localhost/massend" style="width: 60%;height: 1200px"></iframe>
    </div>
  </div>
</template>

<script>
export default {
  name: "Index",
  data() {
    return {
      htmlContent: ''
    };
  },
  mounted() {
  },
  methods: {
    loadHtmlFile() {
      this.htmlContent = "";
      let xhr = new XMLHttpRequest()
      // 线上链接地址
      // xhr.open("GET", val.url, false);
      console.log("xhr",xhr);
      // public文件夹下的绝对路径
      // /xhr.open("GET", "佛山招聘教师.txt", false);
      //xhr.open("GET", "群众首页.html", false);
      xhr.overrideMimeType("text/html;charset=utf-8")
      xhr.send(null)
      this.htmlContent = xhr.responseText;
    }
  },
};
</script>


<style lang="scss" scoped>
.wrap{
  width: 100%;
  height: 500px;
}
</style>

结果:
成功实现了免登录展现页面,
现象一:由 iframe 去进行的内部页面访问时(…/centerprofile/index.vue) ,发现是需要登录
现象二:由 iframe 去进行的请求地址访问时(http://localhost/massend) 访问时,发现不用登录
现象三:由 iframe 去进行的请求地址访问时(https://www.csdn.net/) 访问时,发现不用登录

所以这个就需要注意了

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值