私が現在構築しているFlutterアプリでは、カスタム(Google以外のユーザー/ Facebook/Twitter /など)認証サーバーに対してユーザーを認証する必要があります。Oauth2のフローティングアプリ
これを達成するには、ユーザーはWebページで資格情報を記入する必要があります。この目的のために、WebView-pluginを使用することができる。ただし、ユーザーが認証された後にページがリダイレクトされると、WebViewが閉じられ、WebViewを最初に呼び出した(Flutter)関数にコードが渡されます。
は、すでにいくつかの研究を行ったので、私は、次のオプションaccrossに来た:
- This blog postはまだ手動で私の意見では(真の解決策ではないウィンドウを閉じるには、ユーザーが必要となるローカルサーバを使用しています)。
- This issueは、すべてのOAuthプロバイダとの統合をマークしますが、ブラウザ内のユーザ認証に関する詳細は提供しません。
- This issueは、私が記述しているのとまったく同じですが、WebViewプラグインがWebViewを閉じる方法を提供していると言われています。実際にはclose() -functionがありますが、私はredirect-URIでそれを起動し、検証コードを返す方法を見つけることができません。
redirect-URIが開かれたときにブラウザを自動的に終了するソリューションが存在します(また、確認コードも返されます)。
ありがとうございます!
これは私たちがやったことですが、セキュリティ上の理由からWebブラウザではなくネイティブブラウザでURLランチャーを使用しました。たとえば、AndroidManifest.xmlはURLをURIデータをチェックしたアクティビティにリンクし、チャネルを使用して送信してから、それを閉じます。ありがとう! –
@RickdeVriesどのようなセキュリティ上の理由? AFAIK外部のブラウザは、非公式のクライアント(つまり、authとクライアント/アプリは同じエンティティによって所有されていない(コードレビューされていない))のためのベストプラクティスです。 – straya