github.com/bububa/oceanengine/marketing-api@v0.0.0-20210315120513-0b953137f7a6/api/oauth/refresh_token.go (about) 1 package oauth 2 3 import ( 4 "github.com/bububa/oceanengine/marketing-api/core" 5 "github.com/bububa/oceanengine/marketing-api/model/oauth" 6 ) 7 8 // 刷新Refresh Token 9 // 由于Access_Token有效期(默认1天)较短,当Access_Token超时后,可以使用refresh_token进行刷新,每次刷新都会产生新的access_token和Refresh_Token,同时重置二者的有效期。 10 // Refresh_Token有效期是30天,但是刷新后会产生新的Refresh_token,老的Refresh_token会过期 11 func RefreshToken(clt *core.SDKClient, refreshToken string) (*oauth.AccessTokenResponse, error) { 12 req := &oauth.AccessTokenRequest{ 13 AppId: clt.AppID, 14 Secret: clt.Secret, 15 GrandType: "refresh_token", 16 RefreshToken: refreshToken, 17 } 18 var resp oauth.AccessTokenResponse 19 err := clt.Post("oauth2/refresh_token/", req, &resp, "") 20 if err != nil { 21 return nil, err 22 } 23 return &resp, nil 24 }