This repository has been archived by the owner. It is now read-only.
Attempt at making Apple login work on the web #47
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.
This PR is just a proof of concept which makes auth on web-layer functional.
In
FirebaseAuthentication.swift
we're hard-wiringskipNativeLogin = true
, which completely skips logging in in the native app, and just forwards the needed data to the web layer. Do we have to skip on native side? Yeah. You can't use the same tokens to login twice. See more here: #41 (comment)We're collecting and forwarding
idToken
,rawNonce
andaccessToken
, which is all that the web layer needs to sign in.For Google,
idToken
andaccessToken
is used:For Apple,
idToken
andrawNonce
is used:Why can't we just forward the entire
credential
object? For Google, it's going to beAuthCredential
, and it's impossible to readidToken
oraccessToken
from that object. For Apple, it's going to beOAuthCredential
, and it's impossible to readrawNonce
from that. (Well unless we used some private APIs.)So it's just send these to web layer, and we allow web layer to take over and log in there.