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  }