Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding AccessTokenMiddleware to support oauth #249

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

toanvc
Copy link

@toanvc toanvc commented Aug 9, 2023

Why?

A few months back I created an issue #239, that we need to use Oauth with bearer authentication in our project. I haven't heard any responses yet from the issue I created. So we went ahead and implemented ourself.

What

In this MR, I added renew middleware from mappersmith project https://github.com/tulios/mappersmith#-renew. This will help to renew the token if it's expired. I also added a way that we can set the refreshThresholdMs to auto refresh the token if it's expired by our timer.

Example

// We have a refreshToken function to get the token from our service
export async function refreshToken(authHost: string, clientId: string, clientSecret: string): Promise<string> {
  /// creating your data and axiosConfig
  const response = await axios.post<PostObject>(authHost, data, axiosConfig)
  return `Bearer ${response.data.access_token}`
}

// And add it into the params:
new SchemaRegistry({
      host: host,
      accessTokenParams: {
        clientCredentials: {
          clientId: '',
          clientSecret: ''
        },
        authHost: '',
        refreshToken: refreshToken
      }
    })

@toanvc toanvc changed the title Adding AccessTokenMiddleware to support bearer token authentication Adding AccessTokenMiddleware to support oauth Sep 18, 2023
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.

1 participant