0

是否有人能夠使用Azure應用服務計算身份驗證?Azure應用服務身份驗證

由於一些奇怪的原因,它不再像處理移動服務那樣處理刷新令牌,我現在緩存的令牌會在1小時內過期,這是沒用的。

這是一個C#UWP應用程序,我使用Microsoft帳戶作爲登錄名,我被告知要使用OneDrive API登錄並檢索令牌,然後使用它登錄到App Services,而不是也爲我工作,像「你沒有訪問目錄的權限」這樣的錯誤。

任何幫助表示讚賞。

+0

登錄令牌的1小時到期是一個已知問題,正在修復中。如果您可以提供有關「您無權訪問目錄」問題的更多信息,我們可能會幫助您找到解決方法。當你得到這個錯誤時,你能夠提供一個HTTP跟蹤嗎?另外,請嘗試在管理門戶中爲您的應用程序啓用應用程序日誌記錄,並查看是否有任何有趣的警告/錯誤消息。 –

+0

OneDrive SDK或移動應用程序客戶端是否拋出「您無權訪問目錄」?信息? – phillipv

+0

Phillip在MSDN的帖子中回答了這個問題,猜測這是你的大聲笑。 但基本上,我在我的JObject中使用「authentcationToken」作爲密鑰,我應該使用「access_token」,它可以工作,現在允許我使用從OneDrive獲得的令牌登錄到App Services。 但是我想說明的是,文檔明確指出要爲Microsoft帳戶使用「authenticationToken」而不是「access_token」,這似乎是錯誤的,並且是導致許可問題的原因。到目前爲止,與MobileServices/AppServices有關的文檔一直非常混亂。 –

回答

1

適用於App Service Mobile的解決方案,即MobileService的更新。現在應該有一個solution

這裏複製的代碼是:

async Task<string> GetDataAsync() 
{ 
try 
{ 
    return await App.MobileService.InvokeApiAsync<string>("values"); 
} 
catch (MobileServiceInvalidOperationException e) 
{ 
    if (e.Response.StatusCode != HttpStatusCode.Unauthorized) 
    { 
     throw; 
    } 
} 

// Calling /.auth/refresh will update the tokens in the token store 
// and will also return a new mobile authentication token. 
JObject refreshJson = (JObject)await App.MobileService.InvokeApiAsync(
    "/.auth/refresh", 
    HttpMethod.Get, 
    null); 

string newToken = refreshJson["authenticationToken"].Value<string>(); 
App.MobileService.CurrentUser.MobileServiceAuthenticationToken 
    = newToken; 
return await App.MobileService.InvokeApiAsync<string>("values"); 
} 

希望這樣可以節省別人的時間!