所以我有一個功能getToken()
Golang:返回指針和derefrencing
func getToken() jwt.MapClaims {
tokenString := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkYW0iLCJwYXNzd29yZCI6InRlc3QiLCJpYXQiOjE0ODcyMDY2OTIsImV4cCI6MTUxODc2NDI5Mn0.6LQo_gRwXiFBvNIJOwtf9UuxoQMZZ3XNILTnU-46-Zg"
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
}
hmacSampleSecret := []byte("supersecretkittysecret")
return hmacSampleSecret, nil
})
if err != nil {
println("error")
}
if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
return claims
} else {
return nil
}
}
然後調用相應:
res := getToken()
println(res["username"])
爲什麼res["username"]
兩個內存地址相等(0x2b3c20,0xc420075420)
?這應該只是一個字符串,如adam
。我也曾嘗試func getToken() *jwt.MapClaims
和return &claims
,但仍沒有幫助。
你試圖使用'*資源[「用戶名]' –
@GujaratSantana返回錯誤? '無效間接資源的[ 「用戶名」(類型接口{})' – adamSiwiec
你嘗試'fmt.Println(RES [ 「用戶名」])',而不是'println'? –