package auth import ( "encoding/json" "fmt" "git.oa00.com/go/jcook-sdk/util/http" "net/url" ) const ( PAppKey = "app_key" PAppSecret = "app_secret" PRefreshToken = "refresh_token" Url = "https://open-oauth.jd.com/oauth2/refresh_token" PGrantType = "grant_type" ) type Bearer struct { AccessToken string `json:"access_token"` ExpiresIn uint `json:"expires_in"` RefreshToken string `json:"refresh_token"` Scope string `json:"scope"` UID string `json:"uid"` Time int64 `json:"time"` TokenType string `json:"token_type"` Code uint `json:"code"` Xid string `json:"xid"` } func RefreshToken(appKey string, appSecret string, token string) (*Bearer, error) { value := url.Values{} value.Set(PAppKey, appKey) value.Set(PAppSecret, appSecret) value.Set(PRefreshToken, token) value.Set(PGrantType, "refresh_token") data, err := http.JGet(Url, value, nil) if err != nil { fmt.Println(err.Error()) return nil, err } var b Bearer if err = json.Unmarshal(data, &b); err != nil { return nil, err } return &b, nil }