2015-07-22 128 views
2

我使用Xamarin Forms身份驗證與Auth0。後端服務是Azure移動應用程序。我試圖通過授權令牌返回到服務通過:Azure移動應用程序從事Xamarin身份驗證

  MobileServiceUser usr = new MobileServiceUser(User.UserName); 
      usr.MobileServiceAuthenticationToken = User.jwt; 
      App.client.CurrentUser = usr; 

我還沒有在我的Azure應用程序中處理這個。當我通過用戶如上,我遇到下面的Xamarin項目錯誤:

造成的:md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable:Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:請求無法完成。 (未授權)

這事實,我已經宣佈在我的控制器匿名訪問:

[AuthorizeLevel(AuthorizationLevel.Anonymous)] 
public class MovementController : TableController<MoveHeaderDto> 

如何我想處理MobileServiceUser我在Azure的移動應用?

+0

我在Windows81項目中遇到了與Xamarin.Forms相同的問題,當我使用提供程序和存儲的令牌調用LoginAsync時。 –

回答

2

我相信你看到的401是因爲令牌不是預期的格式,無法驗證。

MobileServiceAuthenticationToken屬性是由移動應用程序網關本身發佈的JWT。您將需要調用loginAsync()方法重載,該重載需要一個額外的標記參數,並傳遞從Auth0獲得的JWT。

loginAsync方法將設置MobileServiceUser,並將其附加到您的服務的調用。請注意,對於Xamarin表單,您需要有一個自定義渲染器,以便平臺的正確視圖元素得到使用。這類似於this blog post爲ADAL庫所做的。

+0

因此,我們只能使用OAuth 2.0將XUMO-Auth頭從應用程序傳輸到移動應用程序,以利用內置身份驗證。即使這裏的文章說它不支持其他網關呢:https://azure.microsoft.com/en-us/documentation/articles/app-service-authentication-overview/#alternative-authentication-methods –

+0

@ mattchenderson您建議首先使用auth0登錄,然後使用auth0中的令牌使用azure客戶端進行登錄?我想這不允許使用auth0的自定義身份驗證,因爲您談論的loginAsync超載也需要提供者。 – frmi

相關問題