Swiftyinsta: Nouveau problème de connexion utilisateur

Créé le 7 août 2019  ·  6Commentaires  ·  Source: TheM4hd1/SwiftyInsta

essayez de vous connecter avec un nouvel utilisateur récent enregistré. connexion Web non terminée parfois au hasard. Instagram affiche une page de suggestion d'utilisateur différente. J'essaie de suivre 1 utilisateur, également 1 utilisateur m'a suivi (il affiche le flux mais ne fonctionne pas) la plupart du temps, la connexion Web n'a pas été effectuée pour cet utilisateur. Après avoir essayé 2-3 fois de vous connecter, cela peut fonctionner.

  • pas de 2FA - connexion directe avec mot de passe
help wanted

Tous les 6 commentaires

Lorsque vous dites nouvellement enregistré, voulez-vous dire que cela se produit lors de l'inscription à partir de la vue Web ou lors de la connexion à un compte qui vient d'être créé mais ailleurs ? @canaksoy
Juste pour comprendre comment essayer de le reproduire

Quoi qu'il en soit, vérifier directement les cookies, au lieu de n'importe quelle URL donnée, peut être un correctif (en supposant qu'ils soient tous définis avant d'atteindre la page de suggestion susmentionnée). J'envoie une pull request dès que possible.

Vérifiez # 76, @canaksoy 💪

Changement principal, à part le fait de ne pas vérifier instagram.com mais juste pour les cookies valides, j'ai effectué le processus tout init async , afin de ne pas interrompre le support multi-compte ( Je prévois de traiter cela correctement dans 2.0 , soit en retournant un UIViewController ou quelque chose comme un LoginManager créant la vue Web).

J'attends l'approbation de @TheM4hd1 pour le fusionner

Il s'avère que le LoginWebView fonctionnait toujours même dans le cas décrit par @canaksoy ci-dessus (je l'ai testé moi-même et vérifié ses captures d'écran), donc je supprime l'étiquette bug pour un help wanted un.
Pourtant, le PR est bénéfique pour la pérennité de l'ensemble, et il devrait être fusionné à mon humble avis.

Pour référence future… le nouveau comportement est le suivant.
(@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 })
    }
}

Pour référence future… le nouveau comportement est le suivant.
(@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 })
    }
}

J'ai fait exactement la même chose, mais après la connexion didSuccessfullyLogIn et l' achèvementHandler ne fonctionne pas 😭

Je viens de faire un petit débogage et j'ai découvert que je ne pouvais pas me connecter à cause de filtered.count = 1 . isUserLoggedIn(instagramCookies: [HTTPCookie]?) ne reçoit que 2 cookies

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 }

Pouvez-vous ouvrir un nouveau numéro avec et expliquer votre flux ? @mkeshnoda
Parce que malheureusement, ces 3 cookies sont vraiment nécessaires, nous ne pouvons donc rien faire pour y remédier… ils signifient littéralement "vous êtes connecté".
Et c'est bizarre car si cela fonctionnait avant, cela devrait fonctionner aussi bien maintenant (il a déjà vérifié pour au moins 2 d'entre eux). J'ai testé avec 4 comptes différents et ils semblent tous fonctionner.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

reefer picture reefer  ·  18Commentaires

sbertix picture sbertix  ·  27Commentaires

effecttwins picture effecttwins  ·  16Commentaires

sbertix picture sbertix  ·  3Commentaires

biox86 picture biox86  ·  12Commentaires