> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/faq/help-topics/connecting/oauth-webview-and-sign-in-failures/oauth-webview-blocked-use-native-browser.md).

# Why does OAuth fail inside an in-app WebView?

Google blocks OAuth authentication inside **embedded WebViews** under its 'Use secure browsers' policy (the hidden URL bar prevents domain verification). This surfaces as 'Error 403: disallowed\_useragent' or a blocked screen, and also affects Fitbit's Google login.

**Replace the WebView with a native in-app browser** (Custom Tab or SFSafariViewController style) that shows the URL bar:

{% stepper %}
{% step %}
Open the Terra-generated auth URL in the native browser.
{% endstep %}

{% step %}
Handle the success and failure redirect URLs in your app.
{% endstep %}
{% endstepper %}

Your existing widget integration and redirect handling can stay the same. See [implementing the Terra widget](https://docs.tryterra.co/health-and-fitness-api/user-authentication/implementation-terra-widget) for the auth flow.

For Google Fit, the web API connection is recommended over the SDK path for reliability.
