关于使用Go编写Cognito Post-Auth Lambda的问题

0

【以下的问题经过翻译处理】 我为Cognito编写了一个非常简单的后身份认证 Lambda,代码如下:

func HandleRequest(ctx context.Context, e events.CognitoEventUserPoolsPostAuthentication ) error {
	eventJson, _ := json.MarshalIndent(e, "", "  ")
	eventString := strings.ReplaceAll(string(eventJson), "\n", "\r")

	log.Printf("EVENT: %s", eventString)
	return nil
}

func main() {
	lambda.Start(HandleRequest)
}

目前它只是用于记录活动。但是,当我将其作为后身份认证触发器连接到用户池时,OAuth2就无法工作。错误消息是“联系管理员”。

我想我需要做一些实际的操作,而不仅仅是返回 error = nil。然而,我在go语言中找不到任何示例。

Javascript 示例的结束方式是:

// Return to Amazon Cognito
callback(null, event);

在 'go' 中的期望也是这样 - 我返回 (events.CognitoEventUserPoolsPostAuthentication, error) 并将原始事件发送回去吗?

profile picture
EXPERTO
preguntada hace 10 meses59 visualizaciones
1 Respuesta
0

【以下的回答经过翻译处理】 我明白了。我想要更多地控制事物,所以我正在使用它:

''' func HandleRequest(ctx context.Context, request events.APIGatewayV2HTTPRequest) (events.APIGatewayV2HTTPResponse, error) { ... } '''

效果很好。之前它会负责编组/解组,这很好,现在我必须自己做,但这还不错。我确实希望响应“ Body”只是 interface{} 并且它会根据 Content-Type 自动编组/解组,但这很好。

我在 Kotlin 和 Spring 中这样做时确实怀念的一件事是能够抛出异常,并编写一个 ExceptionMapper 来设置适当的 http 状态代码。

profile picture
EXPERTO
respondido hace 10 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas