github anton48/vk-turn-proxy-ios v1.0-build20
build 20

latest releases: v1.0-build380, v1.0-build364, v1.0-build354...
4 months ago

Fix captcha flow: burn checkbox only on ERROR, reload WebView on URL change

Go captcha:

  • captcha_pow.go: checkboxBurnedForSession now only set on status=ERROR (VK's "captcha type disabled" signal). Transient failures (BOT, ERROR_LIMIT) no longer burn the checkbox, so the next solveCaptchaPoW retries it.
  • creds.go: the maxPoWRetries=3 loop only short-circuits when the checkbox is provably burned. Transient failures now fully exercise all 3 attempts with fresh captcha URLs — often enough for VK to hand us a solvable slider.

iOS WebView:

  • CaptchaWKWebView.updateUIView was a no-op, so when VK rejected a success_token and Go fetched a fresh captcha URL, the SwiftUI sheet rebinding passed a new url to the same WKWebView — which kept displaying the stale page (with the green check from the previous solve). Now tracks the last loaded URL and reloads on change; resets the one-shot solved guard so new tokens are forwarded.
  • Each CaptchaWKWebView instance now uses an ephemeral WKWebsiteDataStore, so VK's anti-abuse cookies can't carry a pre-solved state into a fresh WebView.

Verified today on WiFi (1 checkbox → OK) and LTE (checkbox BOT → slider auto-solved on attempt 2 without any WebView). In both cases no manual captcha interaction was required.

Don't miss a new vk-turn-proxy-ios release

NewReleases is sending notifications on new releases.