-
Notifications
You must be signed in to change notification settings - Fork 39
Refresh expired access tokens #56
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
Open
studer-l
wants to merge
23
commits into
weavejester:master
Choose a base branch
from
studer-l:implement-refresh
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
1a76e62
Refresh expired access tokens
9f0c3f4
reflow to 80 characters per line
0a0b106
rename get-expired → expired-access-tokens
cbfa368
remove docstrings on non-public functions; remove unrelated changes
ba38ad2
prefer `(Date.)` over `(new Date)`
65e81fc
remove token type check
5327380
refactor `expired-access-tokens` as filter
448624e
fix confusing naming
1c0b548
rename socket-timeout constant to be more specific
94ad054
refactor `refresh-all-tokens`
9339b82
refactor http param options
e8d25b9
remove spurious newlines in `defn`
67c8543
inline `now`
b0c3f83
slightly refactor `refresh-one-token` for clarity
a4f5e2c
rework token refresh into a middle function
069e4b5
minor refactor
26f2b34
update response session unless nil or tokens unchanged
ec2989a
cosmetic change
257c77e
rename refresh-token-request-options -> refresh-token-http-options
46472f0
refactor expired-access-tokens
84589a1
replace `:let` with `let`
60b950d
remove extra space
b057931
more concise `wrap-refresh-access-tokens`
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the synchronous
map
, the error catching function is in the map iteration function, but inasync-map-values
, the error catching function is built in.My suggestion would be to make these two maps consistent. We assume that the mapping function,
f
, will not raise an exception:We then do the equivalent of "catching" the exception when calling it in
refresh-all-tokens
:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed your refactor is more elegant, but its behavior differs from what I initially wrote. Assume two tokens require refresh, one of which fails:
refresh-all-tokens
's continuation is called withnil
. So no refresh occurs.results
inasync-map-values
will accumulate both anil
and a new access token, and the user's session will receive the one updated access token. The failed token will be retried on subsequent requests.Do you have a preferred behavior in this case?