webView
FirebaseAuth

WebViewでFirebase AuthのGoogle認証してエラー


やろうとしたこと

WebViewでの動作を確認しようと、Unityを使ってアプリ内でWebページを表示し、外部ブラウザを立ち上げずにFirebase AuthのGoogleアカウント認証を通そうとした。


起こったこと

Error: disallowed_useragent

スクリーンショット 2019-01-16 16.55.22.png


原因

2016年に、GoogleはWebViewでのOAuth認証をブロックするようになっていた。

https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html


対策

Googleとしても、「ユーザーは1つの端末につき1回Googleにサインインするだけでよくなる」との理由から、外部ブラウザを立ち上げるのが推奨、とのことらしい。


Using the device browser for OAuth requests instead of an embedded web-view can improve the usability of your apps significantly: users only need to sign-in to Google once per device, improving conversion rates of sign-in and authorization flows in your app. Modern “in-app browser tab” patterns available on some operating systems, such as Chrome Custom Tabs on Android and SFSafariViewController on iOS offer further UX improvements for browser-based OAuth flows.


なので、外部ブラウザからURLスキーマとかを使うなどする。