-
Notifications
You must be signed in to change notification settings - Fork 887
OAuth for Google and Apple on all platforms #2673
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
base: main
Are you sure you want to change the base?
Conversation
1/ basically we still use firebase auth, right ? do we need the additional config on the google / apple portal ? 2/ i wonder how apple login would work by these changes ? UX related. so please drop the demo video |
3/ is it compatible with the current system, likes what happen with my current account(data) if i sign-in by the new mechanism ? |
1/ yes we still use firebase auth. I already configured on google and apple side, we don't have to do it anymore 2/ Not much changes in terms of UX, just one additional click for ios. On mac/windows/android the same auth in a webview window flow ScreenRecording_07-16-2025.10-38-07_1.MP43/ Yes it is compatible with the existing system. Previously we were doing everything on the client side directly through firebase, now what we do is we auth the user (from backend) through google or apple and then exchange the credential with firebase. At the end it still is firebase that is handling the auth |
1/ ok |
2/ will do and report back |
2/ on dev env with api.omiapi.com ScreenRecording_07-16-2025.17.MP4 |
2/ cool, the UX looks good. |
5/ yes you'll have to enable google/apple sign in in firebase when setting up backend. We had the google client id and secret envs on the frontend side when we added desktop support ( Line 4 in f5286ce
|
5/ that’s the main reason holding me back from merging this PR. basically, it would x2 the complexity on auth: firebase + duplicated google/apple setup, it's easy to meet the inconsistency on the auth. e.g. could we use the same client id for google/apple with the firebase auth setup? i guess yes. login with the new oauth, but let the backend still use firebase admin (backend/utils/other/endpoint.py) to authorize the user's privileges. the objective: remove friction in setting up the omi repo for devs - make it customizable, but simple, and consistent. my suggestion: if you want to support sign-in with apple on the desktop app, make the minimal changes needed to achieve it. then think long term and ensure the new auth setup is actually simpler than the current one. man, no rush. do it carefully. |
5/
It still uses the same method to authorize privileges. Previously, we signed in the user on the frontend using Google/Apple IDs and then exchanged the credential with Firebase. We’re still doing the same, except now the credential is created on the backend instead of on the frontend. The old flow was: create the credential with
Getting Apple Sign-In to work without the native Sign in with Apple capability requires using OAuth, which is why we have to set up these things ourselves. The minimal change would be to keep using the "Sign in with Apple" capability, but that unfortunately won’t work on DMG builds or on Windows. Previously, the"Sign in with Apple" capability handled everything for us, but since we’re moving away from it, we need to implement that part ourselves. Please let me know if there’s an alternative approach I might have missed |
This would get rid of the google_sign_in and apple_sign_in hard dependencies and also closes #2648
Apple auth will now work on windows and as well as macos notarised distribution (dmg)
Deployment Plan:
Add the following env vars for backend