code: func (a *Authenticator) TokenSource() (oauth2.TokenSource, error) {
  	if _, err := a.doLoginIfRequired(true); err != nil {
  		return nil, err
  	}
  	return tokenSource{a}, nil
  }
docs: // TokenSource optionally performs a login and returns oauth2.TokenSource.
  //
  // Can be used for interoperability with libraries that use golang.org/x/oauth2.
  //
  // It doesn't support 'OptionalLogin' mode, since oauth2.TokenSource must return
  // some token. Otherwise its logic is similar to Transport(). In particular it
  // may return ErrLoginRequired if interactive login is required, but the
  // authenticator is in the silent mode. See LoginMode enum for more details.