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

Apple auth via native iOS flow #1442

Open
gnprice opened this issue Mar 26, 2025 · 2 comments
Open

Apple auth via native iOS flow #1442

gnprice opened this issue Mar 26, 2025 · 2 comments
Labels
a-iOS Issues specific to iOS, or requiring iOS-specific work a-login
Milestone

Comments

@gnprice
Copy link
Member

gnprice commented Mar 26, 2025

After #462, the app will support using Apple auth, aka "Sign in with Apple", to log into Zulip.

The initial version of that will mean going through the web-based flow. That's the only flow that's available in any case on Android, and it's a perfectly reasonable UX; it's the same kind of UX as when people log in via GitHub, or Google, or any other form of SSO.

But on iOS, there's an alternate flow for "Sign in with Apple" which uses native UI provided by the system, and it'd be nice to use that instead. This issue is for doing that.

Implementation

Because this issue is closely tied to our interaction with Apple, it will need to be done by a member of the core team.

Upstream docs here:
https://developer.apple.com/sign-in-with-apple/
but I hope we can complete this feature without (re-)reading those in any detail — instead we can crib from the work we did back in 2020, when we read up on this closely in order to implement it the first time.

We'll follow the example of the legacy app. See the implementation there, from 2020:
https://github.com/zulip/zulip-mobile/pull/4034/files

That implementation uses a library from Expo, in the RN ecosystem, namely expo-apple-authentication, to do much of the work. For Flutter, @chrisbobbe found at #36 (comment) that there's a "Flutter Favorite" plugin for it: package:sign_in_with_apple. So let's try using that.

Key points appear in particular commits from the legacy app's implementation:

Testing

An important part of the work on this issue will be to test it end to end. The only practical way to do that is manually: fire up the app with your draft implementation of the feature, and try using it.

For instructions on how to do that, see zulip/zulip-mobile@c19cbe2, or perhaps more readably:
https://github.com/zulip/zulip-mobile/blob/main/docs/howto/ios-tips.md#sign-in-with-apple

See also this 2025 thread which has some updates to those instructions:
#mobile-dev-help > Enable "Sign in with Apple" for Flutter App

Related issues

@gnprice gnprice added a-iOS Issues specific to iOS, or requiring iOS-specific work a-login labels Mar 26, 2025
@gnprice gnprice added this to the M7: Future milestone Mar 26, 2025
@shkshreyas

This comment has been minimized.

@gnprice

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-iOS Issues specific to iOS, or requiring iOS-specific work a-login
Projects
Status: No status
Development

No branches or pull requests

2 participants