INNER CODE UNIT · Go
AWSGetSSOToken
kubenav/kubenav · cmd/kubenav/aws.go:210
func AWSGetSSOToken(accountID, roleName, ssoRegion, ssoClientID, ssoClientSecret, ssoDeviceCode, accessToken string, accessTokenExpire int64) (_ string, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("panic: %#v", r)
}
}()
ctx := context.Background()
grantType := "urn:ietf:params:oauth:grant-type:device_code"
if accessToken != "" {
if accessTokenExpire < (time.Now().Unix()+60)*1000 {
return "", fmt.Errorf("aws_sso_access_token_is_expired")
}
} else {
svcssooidc := ssooidc.NewFromConfig(aws.Config{Region: ssoRegion})
token, err := svcssooidc.CreateToken(ctx, &ssooidc.CreateTokenInput{