Skip to content

Make Auth0::Client#get_token public#725

Merged
arpit-jn merged 2 commits intomasterfrom
feat/make-client-get-token-public
May 5, 2026
Merged

Make Auth0::Client#get_token public#725
arpit-jn merged 2 commits intomasterfrom
feat/make-client-get-token-public

Conversation

@arpit-jn
Copy link
Copy Markdown
Contributor

@arpit-jn arpit-jn commented May 4, 2026

Summary

  • Makes Auth0::Client#get_token a public method (previously private)
  • Allows callers to retrieve the current API token without a redundant /oauth/token request
  • Updates tests to call get_token directly instead of via send(:get_token)

This takes forward the community contribution from #648 by @ttstarck.

References

Currently if I want to generate an API token for an API using the Auth0::Client, I must do the following:
```ruby
client = Auth0::Client.new(api_identifier: "my-api-identifier", **options)
api_token = client.api_token("my-api-identifier")
do_something(api_token) # Make a request to this API with the api token as the Authorization bearer.
```

However `Auth0::Client.new` will actually already request this api token on initialize, however this token is not available via any public interface.

This commit moves the `Auth0::Client#get_token` to a public method (formerly private).

Now when in need of any API token for an API, we can do the following:
```ruby
client = Auth0::Client.new(api_identifier: "my-api-identifier", **options)
api_token = client.get_token # No need for redundant request to `/oauth/token`.
do_something(api_token) # i.e make an http request to this API using the API token as the Authorization bearer.
```
@arpit-jn arpit-jn requested a review from a team as a code owner May 4, 2026 13:18
@arpit-jn arpit-jn mentioned this pull request May 4, 2026
8 tasks
Comment thread lib/auth0/mixins/token_management.rb

# Get the Client's api token (or generate a new one if it has expired).
#
# @return [String] the api token
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 LOW · conventions

The @return tag says [String] but the method can return nil when @token is nil and no @client_id/@client_secret is configured (the else branch returns @token which could be nil).

Update to @return [String, nil] the API token, or nil if no token is available and credentials are not configured.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one could mislead. It tells callers to nil-guard against a scenario that means the client is broken. A misconfigured client should fail loudly at init, not silently return nil. Documenting nil as valid makes a bug look like expected behavior.

Comment thread lib/auth0/mixins/token_management.rb Outdated
Comment thread lib/auth0/mixins/token_management.rb
Comment thread spec/lib/auth0/mixins/token_management_spec.rb
…move debug comment, assert return value in test
Copy link
Copy Markdown
Contributor

@kishore7snehil kishore7snehil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@arpit-jn arpit-jn merged commit 6b00fdb into master May 5, 2026
9 checks passed
@arpit-jn arpit-jn deleted the feat/make-client-get-token-public branch May 5, 2026 15:48
@arpit-jn arpit-jn mentioned this pull request May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants