Repository navigation
feat(infra): register the iOS app's sign-in callback on the phone client - #489
Conversation
An iOS app signs in through ASWebAuthenticationSession, since Google refuses sign-in inside an embedded web view, and the session returns to the app's own URL scheme. The phone page's client now also allows ai.observal.axl://auth/callback. The app keeps the page's client, so the control plane gives its tokens the same phone scope and nothing else. Signed-off-by: Lokesh <lokeshselvam7025@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
What
Registers the iOS app's sign-in callback,
ai.observal.axl://auth/callback, on the phone page's Cognito app client, next to the page's ownhttps://<domain>/remote/.Why
An iOS app for remote control is being built. Google refuses OAuth inside an embedded web view (
disallowed_useragent), so the app has to sign in throughASWebAuthenticationSession, which returns to the app's own URL scheme. Cognito rejects any redirect that is not registered on the client.The app uses the same client as the page rather than a new one, because the control plane recognises phone tokens by that client ID and grants them the phone scope only (pairing, device enrollment, device relay tickets, the witness). A separate client would need control-plane changes and would be a second phone identity to review.
What does not change
remotegroup opt-in are unchanged. An app sign-in by someone outside the group is refused exactly as on the page.Deploy
deploy.shupdates the phone client in place (callback_urlsandlogout_urls). Existing page sign-ins and refresh tokens keep working.Checks
terraform fmt -checkpasses.