API网关 APIG-使用函数服务开发自定义认证:编写自定义认证函数

时间:2024-07-01 12:34:19

编写自定义认证函数

函数工作流 的控制台编写函数,自定义认证的代码编写指南参见创建用于前端自定义认证的函数

在函数工作流页面创建一个函数,语言选Python 3.6。

表1 函数信息配置

参数

配置说明

函数类型

默认“事件函数”。

区域

与API网关相同区域。

函数名称

根据规划自定义名称。建议您按照一定的命名规则填写名称,方便您快速识别和查找。

委托名称

用户委托函数工作流去访问其他的云服务。此处选择“未使用任何委托”。

企业项目

默认“default”。

运行时

选择Python 3.6。

在“代码”页签,将以下代码复制到index.py中(如果您使用的是专享版网关,并且实例支持authorizer_context_support_num_bool特性,那么context中的value的类型可以为boolean类型或number类型)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding:utf-8 -*-
import json
def handler(event, context):
#以下表示认证信息匹配正确则返回用户名
    if event["headers"]["authorization"]=='Basic dXN****cmQ=':
        return {
            'statusCode': 200,
            'body': json.dumps({
                "status":"allow",
                "context":{
                    "user_name":"user1"
                }
            })
        }
    else:
        return {
            'statusCode': 200,
            'body': json.dumps({
                "status":"deny",
                "context":{
                    "code": "1001",  
                    "message":"incorrect username or password",
                    "authorizer_success": "false"  
                }
            })
        }
support.huaweicloud.com/bestpractice-apig/apig-bp-200706001.html