Azure移动服务客户端身份验证无效。继续得到“Exception Unhandeld”

时间:2017-08-07 21:52:12

标签: c# xamarin.forms azure-mobile-services

我正在研究Xamarin.Froms(PCL)项目。我正在使用Azure移动服务将登录身份验证添加到我的测试应用程序。但我一直得到一个未处理的例外。每次我运行这行代码 user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, MobileServiceAuthenticationProvider.Facebook, Constants.ApplicationURL); 此代码段来自我的“{myApp} .Droid”MainActivity。

MainActivity.cs

public class MainActivity : FormsApplicationActivity, IAuthenticate
{

    private MobileServiceUser user;


    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // Initialize Azure Mobile Apps
        CurrentPlatform.Init();

        // Initialize Xamarin Forms
        Forms.Init(this, bundle);

        // Initialize login provider

        App.Init((IAuthenticate)this);


        // Load the main application
        LoadApplication (new App ());

    }
    public async Task<bool> Authenticate()
    {

        var success = false;
        var message = string.Empty;
        try
        {
            //var token = new JObject { { "access_token", "access_token_value" } };

            user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, MobileServiceAuthenticationProvider.Facebook, Constants.ApplicationURL);

            if (user != null)
            {
                message = string.Format("You are now signed in as {0}.", user.UserId);
                success = true;
            }
        }
        catch (Exception ex)
        {
            message = ex.Message;
        }
        // Display success or failure message 
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.SetMessage(message);
        builder.SetTitle("Sign-in Result");
        builder.Create().Show();

        return success;
    }
}`

MyApp运行但Facebook身份验证页面未显示。因为我的应用程序每次运行应用程序时都会崩溃。

以下是我尝试复制Adding Authentication to Azure Mobile Clients

的MSDN文件的链接

1 个答案:

答案 0 :(得分:0)

  

以下是我尝试复制Adding Authentication to Azure Mobile Clients的MSDN文件的链接。

我注意到您提供的链接是关于向 Xamarin.Android 应用添加身份验证。要将身份验证添加到Xamarin.Forms的Android应用程序项目中,您可以参考Add authentication to the portable class libraryAdd authentication to the Android app

使用服务器管理的流程登录Facebook登录

MobileServiceUser user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this,
   MobileServiceAuthenticationProvider.Facebook);

此外,您可以调试并收集崩溃报告以缩小此问题。这是关于Debugging and Error Tracking的文档,您可以参考它。

<强>更新

对于使用Microsoft.Azure.Mobile.Client 4.0.1,我关注Add your app to the Allowed External Redirect URLs并在Azure门户上添加bruceapp://easyauth.callback作为允许的外部重定向网址。

然后,使用以下代码进行登录操作:

user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, "bruceapp");

我查看了我的bruce_mobile.UWP项目,登录操作可以按预期工作。