Swiftyinsta: Новая проблема входа пользователя

Созданный на 7 авг. 2019  ·  6Комментарии  ·  Источник: TheM4hd1/SwiftyInsta

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

  • нет 2FA - прямой вход с паролем
help wanted

Все 6 Комментарий

Когда вы говорите недавно зарегистрированный, вы имеете в виду, что это происходит при регистрации из веб-представления или при входе в учетную запись, которая была только что создана, но где-то еще? @canaksoy
Просто чтобы понять, как это попробовать и воспроизвести 😊

В любом случае, проверка файлов cookie напрямую, а не любого заданного URL-адреса, может быть исправлением (при условии, что они все настроены до перехода на вышеупомянутую страницу с предложениями). Я отправляю запрос на перенос как можно скорее.

Проверить # 76, @canaksoy 💪

Главное изменение, кроме фактического отсутствия проверки instagram.com а только наличия действительных файлов cookie, я сделал все init process async , чтобы не нарушать поддержку нескольких учетных записей ( Я планирую правильно разобраться с этим в 2.0 , либо возвращая UIViewController или что-то вроде LoginManager создавая веб-представление).

Я жду одобрения @ TheM4hd1 на его объединение 😊

Оказывается, LoginWebView прежнему работает даже в случае, описанном @canaksoy выше (я тестировал его сам и проверял его скриншоты), поэтому я bug для help wanted один.
Тем не менее, PR полезен для будущей проверки всего этого, и его следует объединить, imho.

На будущее ... новое поведение таково.
(@mkeshnoda)

class LoginViewController: UIViewController {
    var webView: InstagramLoginWebView? {
        didSet {
            oldValue?.removeFromSuperview()
            guard let webView = webView else { return }
            // add to view hierarchy (NECESSARY).
            view.addSubview(webView)
            // always request log in page when setting a new web view.
            webView.loadInstagramLogin()
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // create a new `InstagramLoginWebView`.
        InstagramLoginWebView.create(with: view.bounds,
                                     completionHandler: { _, _ in /* deal with login and failures */ },
                                     returnHandler: { [weak self] in self?.webView = $0 })
    }
}

На будущее ... новое поведение таково.
(@mkeshnoda)

class LoginViewController: UIViewController {
    var webView: InstagramLoginWebView? {
        didSet {
            oldValue?.removeFromSuperview()
            guard let webView = webView else { return }
            // add to view hierarchy (NECESSARY).
            view.addSubview(webView)
            // always request log in page when setting a new web view.
            webView.loadInstagramLogin()
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // create a new `InstagramLoginWebView`.
        InstagramLoginWebView.create(with: view.bounds,
                                     completionHandler: { _, _ in /* deal with login and failures */ },
                                     returnHandler: { [weak self] in self?.webView = $0 })
    }
}

Я сделал то же самое, но после входа в систему сделал успешноLogIn, а завершениеHandler не работает 😭

Просто провел небольшую отладку и обнаружил, что не могу войти в систему из-за filtered.count = 1 . isUserLoggedIn(instagramCookies: [HTTPCookie]?) получает только 2 cookie

let filtered = cookies.filter {
            !$0.value.isEmpty
                && $0.properties?[.init(rawValue: "Created")] as? TimeInterval ?? 0 > startedAt.timeIntervalSinceReferenceDate
                && ($0.name == "ds_user_id" || $0.name == "csrftoken" || $0.name == "sessionid") }
        guard filtered.count >= 3 else { return }

Можете ли вы открыть с его помощью новый выпуск и объяснить свой ход? @mkeshnoda
Потому что, к сожалению, эти 3 файла cookie очень нужны, поэтому мы ничего не можем сделать, чтобы это исправить ... они буквально означают «вы вошли в систему».
И это странно, потому что если он работал раньше, он должен работать так же хорошо сейчас (он уже проверил как минимум 2 из них). Я тестировал 4 разных учетных записи, и все они, похоже, работают.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

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

reefer picture reefer  ·  18Комментарии

sbertix picture sbertix  ·  3Комментарии

trentona picture trentona  ·  3Комментарии

biox86 picture biox86  ·  12Комментарии

sbertix picture sbertix  ·  8Комментарии