単純なアプリケーションのアーキテクチャーには疑問があります。平均値を使用したGoogle Oauthの実装
マイ残りベースのAPIサーバは、私がhttp://localhost:3000/auth/googleを使用してテストしたパスポートのGoogleの認証を実装することに成功した私の残りのノードAPIサーバーを開発している間http://localhost:3000 で私のクライアントはhttp://localhost:4200
での角度2で書かれているノードでありますそして 私はGoogleログインページにリダイレクトされ、さらにログインした後、私の休憩ノードapiによって提供される私/プロフィールにリダイレクトされます
私は同じことをしようとしていますが、 Googleの認証を呼び出すノードのAPIサーバー。私の最初のリクエストは http://localhost:4200からhttp:// http://localhost:3000/auth/googleにhttp.getします。私が認証するためには、Googleの認証ページが表示されることを望んしかし、私は私が認定JavaScriptの起源 http://localhost:3000 http://localhost:4200 下とにおけるGoogleの認証ページでのポートの両方を持つURLのが含まれている以下のエラー
XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur …=1000090953925-p7jof0qa284ihknb5sor3i4iatnqarvo.apps.googleusercontent.com. Redirect from ' https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur …=1000090953925-p7jof0qa284ihknb5sor3i4iatnqarvo.apps.googleusercontent.com' to ' https://accounts.google.com/ServiceLogin?passive=1209600&continue=https://a …sercontent.com%26from_login%3D1%26as%3D60339aeceb428c&oauth=1&sarp=1&scc=1' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
を取得iは
app.getノードAPIサーバーのコード下http://localhost:3000/auth/google/callback
が含まれている許可リダイレクトURIを ( '/ AUT google '、passport.authenticate(' google '、{scope:[' profile '、' email ']}))); app.get( '/ AUTH /グーグル/コールバック'、 passport.authenticate(「Googleの、{ successRedirect: '/プロファイル' failureRedirect: '/ユーザー })、 )。
すべてのヘルプは
こんにちは、私はapiサーバーがフロントエンドを除く他のアプリケーションから呼び出すことができないようにしたいので、以下のようにapiサーバーにport4200 res.header( 'Access- Control-Allow-Origin '、' http:// localhost:4200 '); res.header( 'アクセス制御が許可するメソッド'、 'GET、PUT、POST、DELETE'); res.header( 'Access-Control-Allow-Headers'、 'Content-Type'); –
ちょっとVinay、ドメインを指定している場合は、プロトコルも追加する必要があります。したがって、http://をlocalhost:4200の前に追加してください。 –
私は*を追加しましたが、リダイレクトで問題が発生しました。XMLHttpRequestはhttp:// localhost:3000/auth/googleをロードできません。 「http:// localhost:3000/auth/google」から「https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur...=1000090953925-p7jof0qa284ihknb5sor3i4iatnqarvo.apps.googleusercontent.com」にリダイレクトするCORSポリシーによってブロックされました:要求にはプリフライトが必要ですが、これはクロスオリジンのリダイレクトに従うことができません。 –