code: func (t *tokenGetter) Token() (string, error) {
  	var options gophercloud.AuthOptions
  	var err error
  	if t.authOpt == nil {
  		// reads the config from the environment
  		klog.V(4).Info("reading openstack config from the environment variables")
  		options, err = openstack.AuthOptionsFromEnv()
  		if err != nil {
  			return "", fmt.Errorf("failed to read openstack env vars: %s", err)
  		}
  	} else {
  		options = *t.authOpt
  	}
  	client, err := openstack.AuthenticatedClient(options)
  	if err != nil {
  		return "", fmt.Errorf("authentication failed: %s", err)
  	}
  	return client.TokenID, nil
  }
docs: // Token creates a token by authenticate with keystone.