func()

in cmd/utils/auth.go [82:100]


func (c *cachedInteractiveBrowserCredential) GetToken(ctx context.Context, options policy.TokenRequestOptions) (azcore.AccessToken, error) {
	// TODO: may be this can be improved with https://github.com/Azure/kubectl-aks/issues/11
	accounts, err := c.client.Accounts(ctx)
	if err != nil {
		return azcore.AccessToken{}, fmt.Errorf("getting account: %w", err)
	}
	var account public.Account
	if len(accounts) > 0 {
		account = accounts[len(accounts)-1]
	}
	result, err := c.client.AcquireTokenSilent(ctx, options.Scopes, public.WithSilentAccount(account))
	if err != nil {
		result, err = c.client.AcquireTokenInteractive(ctx, options.Scopes)
		if err != nil {
			return azcore.AccessToken{}, fmt.Errorf("acquiring interactive token: %w", err)
		}
	}
	return azcore.AccessToken{Token: result.AccessToken, ExpiresOn: result.ExpiresOn}, nil
}