0

Кто-нибудь смог выяснить аутентификацию с помощью Azure App Services?Аутентификация служб приложений Azure

По какой-то странной причине он больше не обрабатывает токены обновления, как в мобильных сервисах, токен, который я сейчас кеширует, истекает через 1 час, это бесполезно.

Это приложение CW UWP, я использую учетную запись Microsoft в качестве логина, мне сказали использовать API OneDrive для входа и получения токена, а затем использовать его для входа в App Services, работа для меня тоже, с ошибкой типа «у вас нет разрешения на доступ к каталогу».

Любая помощь приветствуется.

+0

1 час истечения токена входа - это известная проблема, по которой исправление находится в пути. Если вы можете предоставить дополнительную информацию о проблеме «у вас нет разрешения на доступ к каталогу», нам может быть полезно найти обходной путь. Сможете ли вы предоставить трассировку HTTP для получения этой ошибки? Кроме того, попробуйте включить ведение журнала приложений для своего приложения на портале управления и посмотреть, есть ли интересные сообщения об ошибках/ошибках. –

+0

Является ли OneDrive SDK или мобильным клиентом приложения «у вас нет разрешения на доступ к каталогу»? сообщение? – phillipv

+0

Филлип в сообщении на MSDN ответил на это, угадывая, что это был ты. Но в основном я использовал «authentcationToken» в качестве ключа в своем JObject, я должен был использовать «access_token», который работает и теперь позволяет мне войти в App Services, используя токен, полученный от OneDrive. Однако я хотел бы отметить, что в документации специально говорится использовать «authenticationToken» и NOT «access_token» для учетных записей Microsoft, это, как представляется, неверно, и это привело к проблеме с разрешением. Документация, связанная с MobileServices/AppServices, была очень запутанной в последнее время. –

ответ

1

Решение для мобильных приложений App, обновление для 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"); 
} 

Надеется, что это экономит время кто-нибудь!