Аутентификация Google в формах Xamarin

#c# #xamarin.forms #xamarin.android #google-authentication

#c# #xamarin.forms #xamarin.android #Google-аутентификация

Вопрос:

Я пытаюсь аутентифицировать пользователя в приложении Xamarin Forms. Я считаю, что это должно быть сделано по-разному для каждой платформы, поэтому я использую функцию в MainActivity для аутентификации при запуске приложения. Я использовал Google.ЧИСТАЯ документация на их сайте, но я получаю некоторые ошибки.

Я напрямую скопировал код Google и получаю credentials.json через встроенный ресурс. Проблема возникает, когда я пытаюсь настроить учетные данные с помощью GoogleWebAuthorizationBroker.Авторизуйте синхронизацию. В коде Google для credPath задано значение token.json. Я получаю сообщение об ошибке, что у меня нет разрешения на это. Затем я попытался использовать Android.OS.Environment.ExternalStorageDirectory и теперь я получаю несколько ошибок. Я не вижу отдельных ошибок, только системных.Исключение AggregateException: произошла одна или несколько ошибок.

 UserCredential credential;
var assembly = typeof(MainActivity).GetTypeInfo().Assembly;
using (var stream = 
assembly.GetManifestResourceStream("Briefing.Droid.credentials.json"))
{
   // The file token.json stores the user's access and refresh tokens, and is created
   // automatically when the authorization flow completes for the first time.
   string credPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.Path, "token.json");
   credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
   GoogleClientSecrets.Load(stream).Secrets,
   Scopes,
    "user",
    CancellationToken.None,
    new FileDataStore(credPath, true)).Resu<
    Console.WriteLine("Credential file saved to: "   credPath);
 }
 

Я ожидал, что откроется окно, позволяющее пользователю войти в свою учетную запись Google. Я получаю систему.Исключение AggregateException: произошла одна или несколько ошибок.

Комментарии:

1. Вы можете обратиться к этому link.docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud /… , И это код этого demo.developer.xamarin.com/samples/xamarin-forms/WebServices /…

Ответ №1:

Откуда у вас возникла идея, что все должно выполняться в машинном коде? Аутентификация в социальных сетях — очень распространенный сценарий, и для большинства из них уже существуют привязанные библиотеки. Это для аутентификации Google https://causerexception.com/2017/12/03/google-native-login-with-xamarin-forms /

Комментарии:

1. Я попробовал эту ссылку и получил ошибки. Причина, по которой я думал, что она должна зависеть от платформы, заключается в том, что она использует пользовательские вкладки для отображения входа в систему и эквивалент iOS. В конце концов я заставил его работать на Android с помощью этого руководства docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud /…

Ответ №2:

В итоге я использовал аутентификацию Xamarin. Обратитесь к этой ссылке: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/authentication/oauth