magic-api magic-api
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
  • 快速入门

    • 简介
    • 快速开始
    • 请求参数获取
    • 增删改查
    • 单表crud接口
    • 分页
  • 基础教程

    • 界面简介
    • 脚本语法
    • 配置多数据源
    • 统一请求响应
    • 统一异常处理
    • 参数校验
    • 脚本调用Java
    • Java调用接口
    • 异步调用
    • 接口发布
    • Lambda
    • Linq
    • 从1.x迁移
  • 权限配置

    • UI鉴权登录
      • 配置用户名密码
      • 多用户登录
      • 与自身应用集成
        • 单独访问
        • Jar集成
        • iframe方式
    • UI操作鉴权
    • 接口鉴权
  • 高级应用

    • 自定义拦截器
    • 自定义SQL拦截器
    • 自定义单表API拦截器
    • 自定义SQL缓存
    • 自定义模块
    • 自定义函数
    • 自定义类型扩展
    • 自定义接口存储
    • 自定义数据库方言
    • 自定义列名转换
    • 自定义脚本语言
  • 插件

    • 插件开发
    • 集群插件
    • 定时任务插件
    • Redis插件
    • Mongo插件
    • ElasticSearch插件
    • Swagger插件
    • Git插件
    • SpringDoc插件
    • nebula插件
  • 指南
  • 权限配置
mxd
2022-01-29
目录

UI鉴权登录

# 配置用户名密码

默认情况下是不配置用户名密码的。

如果需要可以通过以下配置开启用户名密码验证登录。

magic-api:
  security:
    username: admin # 登录用的用户名
    password: 123456 # 登录用的密码

# 多用户登录

如果需要配置多用户登录,则需要使用自定义鉴权的方式。

/**
 * 自定义用户名密码登录
 */
@Component  //注入到Spring容器中
public class CustomAuthorizationInterceptor implements AuthorizationInterceptor {

	/**
     * 配置是否需要登录
	 */
	@Override
	public boolean requireLogin() {
		return true;
	}

	/**
     * 根据Token获取User
	 */
	@Override
	public MagicUser getUserByToken(String token) throws MagicLoginException {
		if (判断token是否有效) {
			return magicUser;   // 从token中获取MagicUser对象
		}
		throw new MagicLoginException("token无效");
	}

	@Override
	public MagicUser login(String username, String password) throws MagicLoginException {
		// 根据实际情况进行修改,如查询数据库。。
		if("admin".equals(username) && "admin".equals(password)){
			// 登录成功后 构造MagicUser对象。
			return new MagicUser("1","admin","tokenvalue......");
        }
		throw new MagicLoginException("用户名或密码不正确");
	}

}

当以上配置完成后,可实现多用户登录,此时页面中右下角显示的用户名信息可能不正确,此时需要额外配置

# src/main/resources/application.yml

magic-api:
  editor-config: classpath:./magic-editor-config.js #编辑器配置

# src/main/resources/magic-editor-config.js

var MAGIC_EDITOR_CONFIG = {
    getMagicTokenValue: function(){
        var token = ..........; // 此处自行获取token 
        return token;
    }
}

# 与自身应用集成

# 单独访问

对于需要单独访问的,需要将应用的权限校验对路径/magic/web/**放行,交给magic-api处理,其它无需配置

对于magic-api UI中对生成出的接口执行测试时,可能会被自身应用权限校验不通过。此时要么模拟测试时将Header携带上,要么对生成的接口进行放行,如果还需要校验,请看一下几种方式。

# Jar集成

默认情况下就是Jar集成的方式,此时需要配置编辑器的请求设置

magic-api:
  editor-config: classpath:./magic-editor-config.js #编辑器配置

src/main/resources/magic-editor-config.js文件内容如下:

var MAGIC_EDITOR_CONFIG = {
    request: {
        beforeSend: function(config){
            // 如果是基于Cookie验证的,此处可以不配。
            config.headers.token = ...; // 此处自行获取Token
            return config;
        }
    },
    getMagicTokenValue: function(){
        var token = ..........; // 此处自行获取token 
        return token;
    }
}

# iframe方式

<iframe src="http://xxxx.xx/magic/web/index.html"></iframe>
<script>
    // 当跨域时,iframe内是访问不到此处配置的。请改为后台配置,
    // 对于需要在header动态添加值时,可通过 http://xxxx.xx/magic/web/index.html?headerName=token&headerValue=value 的方式进行添加
    window.MAGIC_EDITOR_CONFIG = {
      request: {
        beforeSend: function(config){
            // 如果是基于Cookie验证的,此处可以不配。
          config.headers.token = ...; // 此处自行获取Token
          return config;
        }
      }, 
      getMagicTokenValue: function(){
          var token = ..........; // 此处自行获取token 
          return token;
      }
    }
</script>
上次更新: 2025-05-03 23:57:14
从1.x迁移
UI操作鉴权

← 从1.x迁移 UI操作鉴权→

Theme by Vdoing | Copyright © 2020-2025 ssssssss.org | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×