Swiftyinsta: 新用户登录问题

创建于 2019-08-07  ·  6评论  ·  资料来源: TheM4hd1/SwiftyInsta

尝试使用新注册的新用户登录。 网络登录有时会随机未完成。 Instagram 显示了一个不同的用户建议页面。 我尝试关注 1 个用户,也有 1 个用户关注了我(它显示了提要但没有工作),该用户的大部分网络登录都没有完成。 尝试 2-3 次登录后,它可能会起作用。

  • 没有 2FA - 使用密码直接登录
help wanted

所有6条评论

当您说新注册时,您的意思是在从 Web 视图注册时发生,还是在登录刚刚创建但位于其他地方的帐户时发生这种情况? @canaksoy
只是为了了解如何尝试和复制它😊

无论哪种方式,直接检查 cookie 而不是任何给定的 url,都可能是一个修复(假设它们在到达上述建议页面之前都已设置)。 我正在尽快发送拉取请求。

检查#76, @ canaksoy 💪

主要变化,除了不实际检查instagram.com而只是检查有效的 cookie,我已经制作了所有init进程async ,为了不破坏多帐户支持(我计划在2.0正确处理这个问题,要么返回UIViewController或类似LoginManager创建网络视图的东西)。

我正在等待@TheM4hd1的批准以实际合并它😊

原来的LoginWebView仍然即使在通过上述@canaksoy(我都测试它自己,并检查他的截图)中描述的情况下工作,所以我取出bug标记为help wanted一个。
尽管如此,PR 还是有利于未来证明整个事情的,它应该被合并,恕我直言。

供将来参考……新行为是这样的。
(@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 })
    }
}

我做了完全一样但登录后didSuccessfullyLogIncompletionHandler不工作😭

只是做了一些调试,发现我无法登录,因为filtered.count = 1isUserLoggedIn(instagramCookies: [HTTPCookie]?)

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 等级

相关问题

sbertix picture sbertix  ·  8评论

sbertix picture sbertix  ·  3评论

biox86 picture biox86  ·  12评论

anonrig picture anonrig  ·  3评论

reefer picture reefer  ·  18评论