2017-01-25 8 views
0

Я использую API Google Таблиц и API-интерфейс Drive API и перенаправил приложение для использования Google SignIn вместо встроенной проверки веб-браузера. Я могу успешно зарегистрировать пользователя и пройти аутентификацию для служб API, однако всякий раз, когда приложение входит в фоновый режим, оно не сохраняет учетные данные. Ранее этот код будет просто перезагрузить учетные данные из брелка и обновить маркеры, если это будет необходимо немедленно:Google SignIn не сохраняет учетные данные при повторном запуске приложения?

self.service.authorizer = 
      [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName 
           clientID:kClientID 
           clientSecret:nil]; 

Но теперь мне нужно проверить, если учетные данные существуют в связке ключей, используя следующий код в моем AppDelegate:

if ([GIDSignIn sharedInstance].hasAuthInKeychain) { 
    NSLog(@"Auth exists in keychain!"); 
    [[GIDSignIn sharedInstance] signInSilently]; 
} else { 
    NSLog(@"No credentials in keychain!"); 
    [[GIDSignIn sharedInstance] signIn]; 
} 

SignInSilently, кажется, занимает некоторое время, и мне нужно приостановить мой код в течение 3 секунд, прежде чем передавать учетные данные в мои службы API. Из документации не представляется возможным просто сохранить и перезагрузить учетные данные из брелка?

ответ

0

Я понял, что неправильно использовал метод обратного вызова Sign In Google.

(void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error 

Этот метод вызывается после завершения ввода и отсюда вы можете получить учетные данные. Поэтому я просто перешел из своего AppDelegate и в мой диспетчер представлений и сделал свой диспетчер представлений делегатом для GIDSignInDelegate и GIDSignInUIDelegate для получения обратного вызова. Итак, теперь этот диспетчер представлений - это мой экран запуска для запуска знака, а затем продолжите его, как только он завершится, поэтому удалите все статические задержки, которые я установил.
Надеюсь, это поможет кому-то в будущем.

 Смежные вопросы

  • Нет связанных вопросов^_^