Обновление токенов с помощью GIDSignIn iOS

В настоящее время я использую знак google для аутентификации пользователей в моем приложении, но у меня возникают проблемы с id_token после его обновления. У меня установлены следующие переменные. Один для клиента iOS, а один для сервера. Это следует за примерами AWS. Я использую AWS для доступа к серверу и поэтому должен иметь идентификатор клиента и идентификатор веб-приложения.

static let GOOGLE_CLIENT_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx7dde.apps.googleusercontent.com" // Backend web application client ID static let GOOGLE_WEB_APPLICATION_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx65ap.apps.googleusercontent.com" 

Когда я впервые вхожу в приложение, он работает так, как ожидалось. Я получаю идентификатор id, который имеет следующее:

 { "iss": "https://accounts.google.com", "at_h ash": "xxxxxxxxxxxxxxxxxxxxxx", "aud": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx65ap.apps.googleusercontent.com", "sub": "xxxxxxxxxxxxxxxxxxxxxx", "email_verified": true, "azp": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx7dde.apps.googleusercontent.com", "email": "2222MyNewEmailIsHere@gmail.com", "iat": 1475747692, "exp": 1475751292 } 

Вы можете видеть, что «aud» соответствует GOOGLE_WEB_APPLICATION_ID, а «azp» соответствует GOOGLE_CLIENT_ID.

Однако, если я делаю refreshTokensWithHandler следующим образом:

 GIDSignIn.sharedInstance().currentUser.authentication.refreshTokensWithHandler { (GIDAuthentication, error) in self.googleAuth = GIDAuthentication; self.completeGoogleLogin() } 

Я получаю проблему с ответом. Идентификатор id обновляется правильно и, таким образом, имеет новый токен идентификатора. Однако «aud», кажется, перезаписывается идентификатором клиента. Это случается, истек ли токен или нет.

 { "iss": "https://accounts.google.com", "at_h ash": "xxxxxxxxxxxxxxxxxxxxxx", "aud": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx7dde.apps.googleusercontent.com"", "sub": "xxxxxxxxxxxxxxxxxxxxxx", "email_verified": true, "azp": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx7dde.apps.googleusercontent.com", "email": "2222MyNewEmailIsHere@gmail.com", "iat": 1475747692, "exp": 1475751292 } 

Как вы можете видеть, «aud» и «azp» одинаковы во втором ответе. Когда я отправляю запрос на сервер, он жалуется, что токен не может быть проверен.

Мне интересно, если кто-то еще испытал это? Похоже, проблема с GIDSignIn может быть.

  • Не удалось настроить Firebase InstanceID
  • Google SignIn для iOS не удается построить, потому что ищет файл, который не существует
  • Используя Google Sign-in с двумя целями
  • Третья сторона Войти для IOS11 - GIDSignInButton
  • ~ Pods / Headers / Public / Google / Google / SignIn.h: 1: 9: файл GGLCore / GGLCore.h не найден
  • Сбой входа в систему Google на iOS 9, который пытается вызвать canOpenURL
  • Получать контакты Google с помощью API на iOS
  • Использование неразрешенного идентификатора «GGLContext»
  • Не удалось найти «GoogleService-Info.plist», пытаясь интегрировать вход Google в мое приложение
  • Белый экран GIDSignIn на iOS 9
  • Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException» - ios google sign in
  • Невозможно использовать SDK входа в систему Google iOS для iOS 8
  • Interesting Posts

    Формат номера телефона ios

    Перезагрузка / изменение отображаемого лица с помощью ABPersonViewController на iOS7

    AdMob, используемый с iOS 6, сбой приложения (непризнанный селектор)

    файл заголовка в встроенных фреймах iOS 8

    Сохраняются ли данные, хранящиеся в NSUserDefaults, через обновления приложений и при переустановке приложений (удалить-установить)?

    Не удается endBackgroundTask: фоновая задача не существует с идентификатором 4, или она, возможно, уже была завершена

    Невозможно установить флаги компилятора в Xcode 4.3.3

    Архитектура и производительность UIDocument & NSFileWrapper

    Эффективно обнаруживайте, будет ли устройство воспроизводить тихие видео, которые имеют атрибут автовоспроизведения

    Как адрес этой переменной-члена изменяется в объекте-с, когда объект, содержащий его, не может?

    iOS – переход цвета на панели навигации при нажатии кнопки возврата

    Анимация CAGradientLayer в Swift

    Невозможно изменить размер содержимого contentSizeForViewInPopover UIViewController в стороне UINavigationController UIPopover

    как скрыть заголовок раздела, если результат не найден с помощью панели поиска в ios8

    Alamofire: отправка JSON в качестве параметра запроса

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.