-
Notifications
You must be signed in to change notification settings - Fork 265
Identity Verification (JWT) — full stack for adversarial review #1708
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
nan-li
wants to merge
27
commits into
main
Choose a base branch
from
nan/jwt-pr8-demo-ui
base: main
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
27 commits
Select commit
Hold shift + click to select a range
d75bdf5
fix: [PR2] read-your-write consistency defects
nan-li 53642ec
fix: scope RYW resolve to one user and lower the bar on timeout
nan-li ead7217
chore: tighten RYW comments to iOS comment style
nan-li 5ac1967
chore(tests): [PR2] reuse the shared test helpers added in #1719
nan-li 407bcab
feat: [PR3] feature flags, JWT config, and the Identity Verification …
nan-li 859489e
fix: [PR3] tighten params retry class and hydration handler race
nan-li b784b28
refactor: [PR3] adopt the KMP-backed feature manager from #1723
nan-li bbb8151
fix: [PR4] declare the OneSignalUserMocks dependency on OneSignalOSCo…
nan-li e5ca7ee
feat: [PR4] identity model JWT, the JWT repo, and the public API
nan-li ccefb84
fix: [PR4] mark JWT bearer updates as local-only
nan-li 7b27c60
refactor: [PR4] drop the feature-manager refresh removed in PR3
nan-li e86fa70
feat: [PR5] bind each Delta to the user that owns it
nan-li b7f4bc2
fix: [PR5] drop stale properties/subscription deltas instead of mis-s…
nan-li 22a6c77
feat: [PR6] Identity Verification for the request pipeline
nan-li d16bdde
fix: [PR6] hold new-record IDs in purge tests under TEST delay
nan-li 2c2e1e2
chore: [PR6] split types to clear SwiftLint length errors
nan-li fb2ad17
fix: [PR6] keep restored Identify under IV so reshape can promote it
nan-li 76bde7c
fix: [PR6] default missing addsNewRecords to true on Create User decode
nan-li 135250d
fix: [PR6] keep uncached owned requests only while Identity Verificat…
nan-li 9474f56
fix: [PR6] flush combined property deltas before the 5.6-main waitUntil
nan-li 3ca42d2
fix: [PR6] create the anonymous user before combining property deltas
nan-li c296d59
refactor: [PR6] adapt the IV gating tests to the KMP-backed feature m…
nan-li b92b237
feat: [PR7] in-app messages under Identity Verification
nan-li 8ac966d
fix: [PR7] reset in-app messages on user change only while newCodePat…
nan-li 4e3602d
fix: [PR7] refetch IAMs on 401 when a replacement token already landed
nan-li e45f735
refactor: [PR7] drive the IAM rollout-flag tests through OSFeatureFla…
nan-li 3db98a5
feat: [PR8] demo app Identity Verification UI
nan-li 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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Dev-only, but this still writes a bearer to
UserDefaults.standard(backups, anyone dumping defaults). It also teaches an unsafe pattern.I’d keep it in memory for the process, or Keychain. The update path already prints
Updated JWT for:without the token, which is the right instinct.