Swiftyinsta: Problem mit neuer Benutzeranmeldung

Erstellt am 7. Aug. 2019  ·  6Kommentare  ·  Quelle: TheM4hd1/SwiftyInsta

Versuchen Sie, sich mit einem neuen registrierten neuen Benutzer anzumelden. Web-Login wird manchmal zufällig nicht abgeschlossen. Instagram zeigt eine andere Seite mit Benutzervorschlägen an. Ich versuche, 1 Benutzer zu folgen, auch 1 Benutzer folgte mir (es zeigt Feed an, funktionierte aber nicht) Meistens wurde die Web-Anmeldung für diesen Benutzer nicht abgeschlossen. Nachdem Sie 2-3 Mal versucht haben, sich anzumelden, funktioniert es möglicherweise.

  • keine 2FA - direkte Anmeldung mit Passwort
help wanted

Alle 6 Kommentare

Wenn Sie neu registriert sagen, meinen Sie das, wenn Sie sich über die Webansicht anmelden oder sich in ein Konto einloggen, das gerade erstellt wurde, aber woanders liegt? @canaksoy
Nur um zu verstehen, wie man es versucht und zu replizieren

In jedem Fall könnte eine direkte Überprüfung auf Cookies anstelle einer bestimmten URL eine Lösung sein (vorausgesetzt, sie sind alle eingestellt, bevor die oben genannte Vorschlagsseite erreicht wird). Ich sende so schnell wie möglich eine Pull-Anfrage.

Überprüfen Sie #76, @canaksoy 💪

Hauptänderung, abgesehen davon, dass nicht wirklich nach instagram.com gesucht wird, sondern nur nach gültigen Cookies, habe ich den gesamten init Prozess async , um die Unterstützung für mehrere Konten nicht zu unterbrechen ( Ich plane, damit in 2.0 richtig umzugehen, entweder ein UIViewController oder etwas wie ein LoginManager Erstellen der Webansicht).

Ich warte auf die Genehmigung von @TheM4hd1 , um es tatsächlich zusammenzuführen 😊

Es stellte sich heraus, dass das LoginWebView auch in dem von @canaksoy oben beschriebenen Fall noch bug Label für ein help wanted eins.
Dennoch ist die PR von Vorteil, um das Ganze zukunftssicher zu machen, und sie sollte imho zusammengeführt werden.

Für zukünftige Referenzen... das neue Verhalten ist dieses.
(@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 })
    }
}

Für zukünftige Referenzen... das neue Verhalten ist dieses.
(@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 })
    }
}

Ich habe genau das gleiche gemacht, aber nach dem Einloggen didSuccessfullyLogIn und CompletionHandler funktioniert nicht 😭

Ich habe gerade ein wenig debuggt und festgestellt, dass ich mich wegen filtered.count = 1 nicht anmelden kann. isUserLoggedIn(instagramCookies: [HTTPCookie]?) erhält nur 2 Kekse

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 }

Können Sie damit eine neue Ausgabe eröffnen und Ihren Ablauf erklären? @mkeshnoda
Denn leider werden diese 3 Cookies dringend benötigt, also können wir nichts tun, um das Problem zu beheben... sie bedeuten wörtlich "Sie sind eingeloggt".
Und es ist seltsam, denn wenn es vorher funktioniert hat, sollte es jetzt genauso gut funktionieren (es hat bereits nach mindestens 2 von ihnen gesucht). Ich habe mit 4 verschiedenen Konten getestet und sie scheinen alle zu funktionieren.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

reefer picture reefer  ·  18Kommentare

sbertix picture sbertix  ·  8Kommentare

biox86 picture biox86  ·  12Kommentare

sbertix picture sbertix  ·  3Kommentare

rmelnik7777 picture rmelnik7777  ·  19Kommentare