Instagram Auth Broken?

Мы только заметили, что наше приложение, которое использует Instagram в качестве основного входа, больше не работает. Изучая это, кажется, что обратный URL-адрес для Instagram перестает работать. Теперь, когда кто-либо регистрируется через Instagram или подписывается через Instagram, они берутся в приложение Instagram вместо того, чтобы просить аутентифицироваться или восприниматься в нашем приложении.

Я проверил другое приложение, которое, как я знаю, называется "Print Studio", и то же самое происходит с ними.

Происходит ли эта проблема с кем-то еще? Любая подсказка относительно того, что вызывает его, и кто-нибудь слышал от Instagram о возможном исправлении?

Ответ 1

Да. похоже, влияет на все приложения (по крайней мере, приложения, которые используют одобренный сторонний API). Я видел эту проблему несколько дней назад, и она была решена сама по себе. Я предполагаю, что инженеры Instagram катят некоторые обновления и что-то сломали.

Я предлагаю сообщить о проблеме с портала разработчика. https://www.instagram.com/developer/clients/manage/. сколько отчетов, сколько они получают, тем лучше.

UPDATE:

Проблема, похоже, связана с постоянными изменениями cookie/сессии, сделанными на стороне Instagram. Чтобы устранить проблему, перенаправьте пользователя на исходный URL-адрес auth, когда вы обнаружите, что пользователь попал на домашнюю страницу Instagram. Поскольку пользователь уже зарегистрирован, это должно передать пользователю правильный URL-адрес перенаправления, не войдя снова.

например, быстрым:

  // MARK: - WKNavigationDelegate
  override func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

   if let urlString = navigationAction.request.url?.absoluteString {

     if urlString == "https://instagram.com" || urlString == "https://instagram.com/" ||
      urlString == "https://www.instagram.com" || urlString == "https://www.instagram.com/" ||
      urlString == "http://instagram.com" || urlString == "http://instagram.com/" ||
      urlString == "http://www.instagram.com" || urlString == "http://www.instagram.com/" {

        decisionHandler(.cancel)
        self.refresh(nil) // reloads the original auth url
        return
      }
    }

    super.webView(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)
  }