Astro轻应用 AstroZero-如何控制接口访问权限:如何通过脚本控制接口访问权限

时间:2023-11-01 16:25:39

如何通过脚本控制接口访问权限

  1. AstroZero提供了示例自定义接口前置脚本,可以仿造示例代码进行脚本的编写。

    图7 创建示例自定义接口前置脚本
    您可以在自定义接口前置脚本中进行自定义的权限校验,并根据校验结果返回相应的result值。
    export class Output {    @action.param({ type: "Number"})    result: decimal.Decimal;} const PASS     = decimal.newWithExponent(1, 0);const BANNED   = decimal.newWithExponent(0, 0);const FALLBACK = decimal.newWithExponent(-1, 0);
    自定义接口前置脚本输出参数result含义如下:
    • PASS--{"result":1}:校验通过,直接放行。
    • BANNED--{"result":0}:校验不通过,无法调用。
    • FALLBACK--{"result":-1}:校验通过,但还需要进行后续权限校验。

    开发自定义接口前置脚本时,出参可按照示例自定义接口前置脚本代码中的表达式也可自行定义,但必须确保出参为“-1”“0”“1”中的某一值,否则作为校验不通过处理。

  2. 单击左下角的“服务”,在服务管理页面,单击“编辑”,将校验方式改为“与脚本绑定”,在“前置处理”中选择相应的自定义接口前置脚本。

    • 前置处理:一般是授权处理脚本,在访问自定义接口前,需要进行授权处理。
    • 后置处理:一般是敏感错误信息或者统计日志处理脚本,后置脚本没有返回参数,无论执行成功或失败都不影响自定义接口的请求处理流程。
    图8 自定义访问控制
    图9 绑定自定义接口前置脚本

support.huaweicloud.com/usermanual-astrozero/astrozero_05_0646.html