Я думаю, что нашел хорошее решение для моей проблемы, которое также может помочь другим в такой же ситуации:
Таким образом, если вы хотите использовать сторонний вход в систему и у вас нет одинаковой поддержки на всех платформах (например, вход в систему Firebase и UWP), единственная информация, касающаяся уникального пользователя, не будет изменена в будущем и не зависит от сервера, с которым вы работаете, это адрес электронной почты. Это можно использовать для идентификации пользователя.
Давайте выберем Google в качестве стороннего входа:
Для Xamarin Forms сторонняя документация по входу в систему очень скудна по сравнению с Xamarin.Android, но я нашел очень хорошее руководство здесь . Да, он написан на испанском языке, но Google Chrome переведет его как раз правильно. Чтобы получить электронную почту вместо сгенерированного идентификатора, просто замените
MessagingCenter.Send(FirebaseAuthService.KEY_AUTH, FirebaseAuthService.KEY_AUTH, sg.IdToken);
с
MessagingCenter.Send(FirebaseAuthService.KEY_AUTH, FirebaseAuthService.KEY_AUTH, sg.Email);
Убедитесь, что вы прочитали все инструкции в параграфе «Использовать свои собственные учетные данные» - вы должны изменить идентификатор пакета в схеме протокола манифеста.
Теперь, чтобы получить адрес электронной почты Google с помощью UWP:
Опять же, очень скудная документация. Вам необходимо скачать образцы Oauth2 для .Net с здесь . Затем в OAuthUniversalApp при выполнении первого запроса укажите scope = email, например:
string authorizationRequest = string.Format("{0}?response_type=code&scope=email%20profile&redirect_uri={1}&client_id={2}&state={3}&code_challenge={4}&code_challenge_method={5}",
authorizationEndpoint,
System.Uri.EscapeDataString(redirectURI),
clientID,
state,
code_challenge,
code_challenge_method);
Теперь у вас есть электронная почта Google на обеих платформах, поэтому пользователь может использовать свое устройство Android или ПК с Windows для входа в систему с помощью Google. Еще одна важная вещь - сделать для пользователя прозрачным, что у вас будет доступ к электронной почте, и использовать алгоритм шифрования, если вы решите сохранить его, чтобы избежать проблем с безопасностью.