第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何正確擴充語境

如何正確擴充語境

Go
12345678_0001 2023-05-04 17:13:39
我試圖在我的 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)先感謝您。
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

您無法直接訪問添加到上下文的值——您需要使用Value(key interface{}) interface{}API。


這是因為添加到 a 的任何值都Context必須是不可變的才能保證線程安全。對 , 上現有值的任何更改Context都是通過創(chuàng)建一個新的Context.


這是更新的my-lambda.go:


func Handler(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {

    fmt.Println(ctx.value("user").(models.User))


    return events.APIGatewayProxyResponse{}, nil

}

值返回一個接口,所以你需要使用類型斷言。


注意:不推薦使用純字符串作為 Context 的鍵,因為這可能導致鍵沖突。


查看完整回答
反對 回復 2023-05-04
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號