попробуйте войти в систему с новым зарегистрированным новым пользователем. веб-вход в систему не завершается иногда случайным образом. Instagram показывает другую страницу предложений пользователей. Я пытаюсь подписаться на 1 пользователя, также 1 пользователь подписался на меня (он показывает канал, но не работает) в основном веб-вход для этого пользователя не был завершен. После 2-3 попыток входа в систему это может сработать.
Когда вы говорите недавно зарегистрированный, вы имеете в виду, что это происходит при регистрации из веб-представления или при входе в учетную запись, которая была только что создана, но где-то еще? @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 разных учетных записи, и все они, похоже, работают.