1 回答

TA貢獻1876條經驗 獲得超5個贊
您可以使用 3rd 方庫轉換map[string]interface{}
為具體類型。檢查mitchellh/mapstructure庫,它將幫助您以更好的方式實現。
因此,您可以使用以下代碼改進您的代碼:
import "github.com/mitchellh/mapstructure"
type Claims struct {
? ? Email string
? ? // other fields
? ? ID int
}
func claims(r request.Request) (Claims, error) {
? ? input := r.RequestContext.Authorizer["claims"]
? ? output := Claims{}
? ? err := mapstructure.Decode(input, &output)
? ? if err != nil {
? ? ? ? return nil, err
? ? }
? ? return output, nil
}
在你的處理程序的某個地方,你可以通過調用這個方法來獲得你的聲明
func someWhere(){
? ? userClaims, err := claims(request)
? ? if err != nil {
? ? ? ? // handle
? ? }
? ? // you can now use : userClaims.Email, userClaims.ID
}
func claims不要忘記根據您的(參數)更改請求參數類型r。
- 1 回答
- 0 關注
- 137 瀏覽
添加回答
舉報