我試圖在我的 Lambda 中創(chuàng)建一個身份驗證中間件,它基本上在結構user中注入一個屬性ctx,并調用處理函數。我是怎么做的:中間件/authentication.go:package middlewaresimport ( "context" "github.com/aws/aws-lambda-go/events" "github.com/passus/api/models")func Authentication(next MiddlewareSignature) MiddlewareSignature { user := models.User{} return func(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { claims := request.RequestContext.Authorizer["claims"] // Find user by claims properties. if err := user.Current(claims); err != nil { return events.APIGatewayProxyResponse{}, err } // Augment ctx with user property. ctx = context.WithValue(ctx, "user", user) return next(ctx, request) }}我的 lambda.go:package mainimport ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" "github.com/passus/api/middlewares")func Handler(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { fmt.Println(ctx.user) return events.APIGatewayProxyResponse{}, nil}func main() { lambda.Start( middlewares.Authentication(Handler), )}這種方法的問題在于:它不起作用。我在嘗試構建它時看到以下錯誤:create/main.go:13:17: ctx.user undefined (type context.Context has no field or method user)先感謝您。
如何正確擴充語境
12345678_0001
2023-05-04 17:13:39