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

Support Apple auth #462

Open
gnprice opened this issue Dec 25, 2023 · 0 comments
Open

Support Apple auth #462

gnprice opened this issue Dec 25, 2023 · 0 comments

Comments

@gnprice
Copy link
Member

gnprice commented Dec 25, 2023

AKA "Sign in with Apple". This will be a requirement for launch, because Apple makes it a requirement for the App Store. (That doesn't affect the beta, which is in TestFlight and not in the App Store.)

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.

I doubt any significant number of people are actually using this feature, so there's probably no need for it in the beta period. But we'll see if we hear feedback asking for it. Indeed I don't think we've heard from anyone wanting to use it. But now that launch time is getting close, we'll need to do this sometime soon.

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.

There are two parts to this feature:

  • having the web flow work, on Android in particular;
  • having the native iOS flow work.

I believe the web flow already works, but we'll need to test it manually to confirm.

Then for the native iOS flow, 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

Related issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

No branches or pull requests

1 participant