关于使用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
전문가
질문됨 6달 전47회 조회
1개 답변
0

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

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

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

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

profile picture
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인