フロントエンドでAngularJSを使用し、サーバー側でPython with Flaskを使用してWebアプリケーションを構築しています。私はgoogle developers siteで利用可能なドキュメントに続いてOpenID/OAuthログイン機能を実装しようとしています。私は最初にサーバー側のコードを構築することから始まりました(Postmanを使ってテストしたところ、すべてうまく動作しました)、フロントエンドで作業を始めました。さて、私は、この機能を追加するために私が従ったデザインが本当に悪いと感じています。以下は、私が直面しています問題です:デザイン:AngularJSとFlaskを使用したGoogle OAuth
gAuth: それが呼び出されます私のフラスコアプリ内の関数である
をグーグルのOAuthドキュメント以下は、私は私のサーバー側は、このようにやや流れのセットアップを持っていますユーザーがGoogleのsignInボタンをクリックしたときのAngularのGETリクエスト
Google認定エンドポイントにGETリクエストを送信して認証コードを取得します。このリクエストに対する応答には、Googleログインページを表示するHTMLコードを持つテキストフィールドがあります。これをAngularに戻します(この関数が呼び出された場所であるためです)。 Angularはブラウザ上でこれをレンダリングし、ユーザーが資格情報を入力するようにします。ユーザーが資格情報を入力して自分のアプリケーションを認証すると、私はGoogle OAuthに使用しているredirect_URIなので、GH要求を使用して requestToken GETリクエストを使用して認証コードを送信します。この時点で、私はAngularから完全に切り詰められています。 requestTokenは、認証コードを使ってGoogleのトークンエンドポイントにPOSTリクエストを送信し、id_tokenと交換します。さて、requestTokenはid_tokenを持っていて、それがどうしているのかを行います。
私はrequestToken関数から '1'の値を返していますが、これはrequestTokenへのリクエストが行われた場所であるため、Googleコードに移動します。
問題は、フロントエンドにすべてがOAuthでうまくいったことを知らせることができ、ユーザーをホームページにリダイレクトする必要があることです。私はrequestTokenの戻り値をAngularにします。私はそれが可能かどうか尋ねたいですが、私の常識はそれが不可能であると言います。しかし、FlaskからAngularにリクエストを送信できる方法があるかどうかは疑問です。どんな助けでも大歓迎です。