0

我嘗試使用Azure移動服務的身份驗證提供程序與Google進行身份驗證。我已經按照文檔中的教程(http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-windows-phone-get-started-users/)並將其應用於我的應用程序的登錄屏幕。它確實顯示Google提供的登錄提示,然後我輸入憑據並單擊登錄。然後,而不是要求同意使用我的帳戶詳細信息,如預期,它可以回到我的應用程序的登錄屏幕。用於Windows Phone的Azure移動服務的身份驗證問題

我不確定有什麼問題,或者如何弄清楚什麼是錯的。我對Windows Phone開發和Visual Studio的開發有點新,更多地用於Android開發和Eclipse。這對我來說是新的,我迷路了。

以下是我用於Google身份驗證的代碼。

private async System.Threading.Tasks.Task aaGoogle() 
{ 
    while (user == null) 
    { 
     string message; 
     try 
     { 
      user = await App.MobileService 
       .LoginAsync(MobileServiceAuthenticationProvider.Google); 
      message = string.Format("You are now logged in - {0}", user.UserId); 
     } 
     catch (InvalidOperationException) 
     { 
      message = "You must log in. Login Required"; 
     } 

     var dialog = new MessageDialog(message); 
     dialog.Commands.Add(new UICommand("OK")); 
     await dialog.ShowAsync(); 
    } 
} 
+0

幾件事情:請仔細檢查AMS配置中的谷歌項目的客戶端ID /祕密。另外,當你調試上面的代碼時會發生什麼?任何例外?用戶對象是否填充? –

+0

雙重檢查,它們都是正確的。 沒有例外,並且用戶對象爲空,這是合理的,因爲登錄過程從未完成。改變了一些東西,仍然是相同的結果:沒有同意屏幕。 – Mike

+0

我最終創建了一個新的客戶端ID和祕密並刪除了舊的客戶端。在將AMS配置更改爲新的並再次嘗試應用程序之後,我現在正在mscorlib.ni.dll中出現'System.ArgumentException'。這可能是相關的嗎? – Mike

回答

1

啊,微軟的文檔是不完整的。我爲我的應用程序使用了.NET後端和C#,並且爲Javascript後端創建了默認回調URL。所以對於.NET後端正確的回調URL是:

  • [mobileservice] .azure-mobile.net /登入-嘰嘰喳喳
  • [mobileservice] .azure-mobile.net /登入Facebook的
  • [mobileservice] .azure-mobile.net /登入,谷歌
  • [mobileservice] .azure-mobile.net /登入微軟

後改變鏈接到那些爲所有相關的服務,登錄屏幕和同意屏幕完美地工作,我得到了每個帳戶的登錄詳細信息。一切按預期工作。我希望這可以幫助別人。

相關問題