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

Implement lazy login #84

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

Conversation

mdesousa
Copy link

A common pattern for serverless data sources is to initialize authentication configuration (login id, api key), and subsequently invoke api requests as needed:

  1. service initializes (login)
  2. users performs requests as needed
  3. service ends (logout)

Today the currency cloud sdk immediately sends an authentication request on step 1, which returns a token that can be used for a period of time (30 minutes). However, in many occasions there may be a significant period of time between step 1 and step 2... which means that we executed an unnecessary authentication request. For a number of reasons, it would be nice if the sdk could support a lazy login, like this:

  1. service initializes (lazy login just stores config without making authentication request)
  2. user performs initial request (sdk does not have a token, so it authenticates before sending the request)
  3. users continue to execute requests using the token from step 2
  4. service ends (logout)

This PR implements the lazy login pattern, by exposing a new optional argument to the authentication.login() function.

@mdesousa
Copy link
Author

hello @jonathancouchman @gergelykovacs , wondering if you had a chance to review this?
by the way, i looked through those static code analysis warnings but they seem inconsistent with the existing code? for example, i see warnings about strings requiring double quotes... but i see the existing code uses single quotes.
it would be very helpful to get this merged in the library, thanks.

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