JWT: Resolve IAM conditions after user create to allow fetching of IAMs #2337
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.
Description
One Line Summary
Resolve fetch IAM conditions after the user create call, not just in user update call, in order to allow fetching IAMs after the first usage of
login
.Details
When Identity Verification is enabled, the initial anonymous user create is dropped. As a result, we will never make this call. Then, when
login
is invoked, we send a create user request with no subsequent update user calls to be made. Thus, the fetch IAM condition was never resolving. Since create user returns ryw data from the server, we can safely resolve the condition with this data when the create user returns successfully. Additionally, this is appropriate and safe to do so as a create user call effectively serves the same role as a user update call for purposes of read-your-write consistency.Motivation
Scope
Testing
Unit testing
Unit tests are updated only
Manual testing
Android emulator on API 35
Reproduced the issue that IAMs are not fetched after the first
login
call. After fix, IAMs are fetched.Testing with identity verification enabled:
Testing with identity verification disabled:
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is