2016-12-08 1 views
0

Я использую Microsoft Graph SDK для моего приложения iOS.Нужно ли обновлять токен доступа при использовании Microsoft Graph и как это сделать?

Нужно ли вручную обновлять токен доступа, когда он истек?

Маркер доступа Я говорю о: NXOAuth2AccountStore.sharedStore() счета [0] .accessToken

Я проверил, что я все еще могу запросить даже маркер доступа истек.. В то время, когда я впервые вошел в систему, время истекло 3600 секунд. Итак, я ждал 2 часа, чтобы снова получить информацию о пользователе, события и все еще могу это получить.

У меня есть дамп "accessToken.hasExpired" и "accessToken.expiresAt", чтобы убедиться, что маркер доступа истек

Благодарности

* Подробнее *

Я следую за образец здесь: https://github.com/microsoftgraph/ios-swift-connect-sample

Я не могу найти документы об обновлении токена доступа на Microsoft Graph: https://graph.microsoft.io/en-us/code-samples-and-sdks

ответ

2

Да, вы должны периодически обновлять токены при использовании графика в приложении. Более подробная документация доступна через сайт Azure AD в: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios

Предлагаемая библиотека аутентификации используется содержит метод для обновления этих маркеров:

@implementation NXOAuth2AuthenticatorRefreshCallback

Если я не ответил на ваш вопрос, не могли бы вы более конкретно о том, что вы пытаетесь достичь? Можете ли вы использовать истекший токен или вы не можете обновить свой старый?

+0

Hi Кейтлин Тюки, Спасибо за ваш ответ я не использовал Microsoft Azure Active Directory , Я использую Microsoft Graph, я регистрирую приложение по адресу: https://apps.dev.microsoft.com/Landing Мне просто интересно, потому что я протестировал и увидел, что токен доступа истек, но я все равно могу отправить квест (например, получать события в календаре). –

+0

Да, Microsoft Graph использует Azure AD для аутентификации пользователей (конвергентное auth: https://graph.microsoft.io/en-us/docs/authorization/converged_auth). Я рассмотрю проблему с истекшим токеном и при необходимости создаю служебную ошибку для соответствующей команды. –

0

Используйте этот код, когда вам нужно обновить токен доступа. Это будет выступать в качестве пластыря предопределенного кода, предоставленного в графе SDK и вы можете извлечь токен из метода:

+(id)tokenWithResponseBody:(NSString *)theResponseBody tokenType:(NSString *)tokenType; 

[MSGraphClient setAuthenticationProvider:AppDel.authentication.authProvider]; 

_graphClient = [MSGraphClient client]; 

NSMutableURLRequest * sampleReq = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://graph.microsoft.com/v1.0/me"]]; 

[_graphClient.authenticationProvider appendAuthenticationHeaders:sampleReq completion:^(NSMutableURLRequest *request, NSError *error){  
    if(error == nil) 
    { 

    } 
    else 
    { 
     [self showToast:@"" message:@"Failure in refresh 0365 token"]; 
    } 
}]; 
Смежные вопросы