Аутентификация не перенаправляет обратно на мое приложение для Android в Xamarin.Forms - PullRequest
0 голосов
/ 18 мая 2018

Я пишу простое приложение Xamarin.Forms с мобильными приложениями Azure на сервере.Я пытаюсь реализовать простую аутентификацию на сервере, но она не работает.Я пробовал следовать инструкциям в этой статье Microsoft , этой ветке Github и этой онлайн-книге , но безрезультатно.

Когда я вызываю код входа в систему, меня перенаправляют на страницу входа в Azure в веб-представлении.После ввода моих учетных данных браузер возвращает обратно к тому, что кажется ожидаемым, но я остаюсь в браузере с сообщением об ошибке.

lookatmetestingthisurischeme: //easyauth.callback/#authorization_code=QHcJvRN1IXxC9QGWH_gibberish_continues_fore.

enter image description here

Настройки аутентификации мобильных приложений Azure: enter image description here

Манифест Android

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.MyApp">
    <uses-sdk android:minSdkVersion="19" />
    <application android:label="MyApp.Android"></application>
  <activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity" android:launchMode="singleTop" android:noHistory="true">
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="lookatmetestingthisurischeme" android:host="easyauth.callback" />
    </intent-filter>
  </activity>
</manifest>

Моя реализация входа в систему в проекте Android

await client.LoginAsync(_context, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, 
"lookatmetestingthisurischeme");

Бонусные баллы, если вы можете сказать мне, как заставить это работать в UWP.В UWP открывается браузер, я вхожу в систему и никогда не перенаправляюсь обратно в свое приложение.

1 Ответ

0 голосов
/ 11 марта 2019

Убедитесь, что узел "активность ..." ВНУТРИ узла "приложение ...".Похоже, в вашем манифесте он сидит за ним.Должно быть:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.whatever">
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="27" />
    <application android:label="myapp.Client.Android">
      <activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity"
                 android:launchMode="singleTop" android:noHistory="true">
        <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data android:scheme="myurlscheme" android:host="easyauth.callback" />
        </intent-filter>
      </activity>
    </application>
</manifest>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...