2017-04-05 6 views
0

私は春のフレームワークを使用し、セキュリティのために春のoauth2を使用して書かれている休憩アプリケーションを持っています。 そして、私は角度アプリケーションからこの休憩サービスを呼び出すときはいつも、エラーが発生しました。両方のアプリケーションがローカルマシン(localhost)上で動作していますが、異なるポート(バックエンドJavaでは8080、フロントエンドでは3000)で動作します。Spring oauth2クロスオリジンソリューション

バックエンドアプリケーションのコントローラに@crossoriginリソースAPIのクロスオリジンが固定されていますが、春のoauth2認証url(/ oauth/token)の場合、これはいつも起こります..

私は多くの方法を試しましたが、私の問題は解決しません。

誰もが私を助けてください....

おかげ

+1

あなたのブラウザがdevtoolsコンソールにログインしている正確なCORSエラーメッセージを追加するには、この質問を更新/編集するためにhttps://stackoverflow.com/posts/43225969/editを使用してください。 – sideshowbarker

+0

応答では、Access-Control-Allow-Originヘッダーをlocalhost:3000に設定していますか(また、Access-Control-Allow-Headers:Access-Control-Allow-Origin?) – giaco

+0

いいえ、私は追加できませんそれは春oauth2で – sam

答えて

1

トークンエンドポイント(/ OAuthを/トークン)が、承認許可コードの交換でトークンを取得するには、アプリケーションサーバ側から呼び出されることになっていますそのためCORSルールは適用されません。CORSヘッダーは必要ありません(CORSルールはブラウザだけで必要です)。 Angularアプリケーションにトークンを取得するには、OAuth2暗黙のフローを使用してiframeを使用してリフレッシュする必要があります。そのため、ここではCORSヘッダーは必要ありません。

は のOAuth2の助成金型用https://tools.ietf.org/html/rfc6749とのOpenID Connectセッション管理のための http://openid.net/specs/openid-connect-session-1_0.htmlを参照してください。これらのRFCは読みやすいです。

関連する問題