"github.com/volcengine/volc-sdk-golang/service/sts"
var client = &http.Client{}
sts.DefaultInstance.Client.SetAccessKey(testAk)
sts.DefaultInstance.Client.SetSecretKey(testSk)
resp, _, err := sts.DefaultInstance.AssumeRole(&sts.AssumeRoleRequest{
RoleSessionName: roleSessionName,
accessKeyId = resp.Result.Credentials.AccessKeyId
secretAccessKey = resp.Result.Credentials.SecretAccessKey
sessionToken = resp.Result.Credentials.SessionToken
urlStr := "https://console.volc-embed.com/api/passport/login/getSigninTokenWithSTS"
urlStr += "?accessKeyId=" + url.QueryEscape(accessKeyId)
urlStr += "&secretAccessKey=" + url.QueryEscape(secretAccessKey)
urlStr += "&sessionToken=" + url.QueryEscape(sessionToken)
urlStr += "&sessionDuration=3600"
req, err := http.NewRequest("POST", urlStr, nil)
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
rawResp, err := client.Do(req)
defer rawResp.Body.Close()
body, _ := ioutil.ReadAll(rawResp.Body)
type GetSigninTokenWithSTSResp struct {
var resp GetSigninTokenWithSTSResp
json.Unmarshal(body, &resp)
signinToken = resp.Result.SigninToken
urlStr := "https://console.volc-embed.com/api/passport/login/loginWithSigninToken"
urlStr += "?signinToken=" + url.QueryEscape(signinToken)
urlStr += "&redirectURI=" + url.QueryEscape(targetConsoleUrl)
fmt.Printf("Generated url: %s\n", generatedUrl)