現在、React and PlayアプリケーションでLinkedInでOAuthログインを実装していますが、リダイレクトしようとするとCORSエラーが発生します。私のdevの環境での認証ページ:Oauthリダイレクト要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません
XMLHttpRequest cannot load https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_i…basicprofile&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2Fusers%2Flinkedin. Redirect from 'https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_i…basicprofile&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2Fusers%2Flinkedin' to 'https://www.linkedin.com/uas/login?session_redirect=%2Foauth%2Fv2%2Flogin-s…' 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.
私は次のセットアップがありますローカルホストで実行されている
- プレイサーバー:9000
- アプリ(作成に反応します経由して作成反応するアプリ)ローカルホストで実行されている:私は適切CORSを処理するために、私のPlayアプリケーションを設定している
Action { implicit req: RequestHeader => val csrfToken = CSRF.getToken.get.value Redirect(linkedinUrl(oauthConfig.linkedinClientId, csrfToken)).withSession("state" -> csrfToken) }
:3000
私のJSコードは次のように実装されて/auth/linkedin
エンドポイントを呼び出します。
反応する私のアプリはちょうどAxiosを経由して上記のエンドポイントへの要求を行う:
axios.get('/auth/linkedin')
そして、これは私にエラーを与えるのLinkedInの認証ページへのリダイレクトと303で応答します。
このDEVセットアップでCORSポリシーが正しく機能するようにするにはどうすればよいですか?
"proxy": "http://localhost:9000",
そして私はまた、プレイサーバーにリダイレクトに"Access-Control-Allow-Origin" : "*"
にリクエストヘッダを設定しようとしました:私は作成-反応するアプリのドキュメントとして私package.jsonに次を追加しようとした推奨しています成功なし。
localhost:9000/auth/linkedinが正しくリダイレクトされることに注意してください。
参考にしていただきありがとうございます。不思議なことに、私がちょうど 'Linkedin'のようなことをしても、リンクをクリックするだけで正常に動作します。私はリンクをするのが私にとって最も簡単かもしれないと思う。 –
*ナビゲーション*を作成するリンクをクリックすると、フロントエンドのJavaScriptコードから要求を出してレスポンスを消費することとはまったく異なります。ブラウザは、クロス・オリジンのナビゲーションをブロックしません(そうでなければ、ウェブ全体は機能しません)。しかし、ブラウザーは、フロントエンドJavaScriptコードが、クロス・ソース・リクエストからの応答を得ることを妨げます。そのような要求を受け取ることをオプトインしています。そして、サーバーがクロスオリジン要求を受け取る方法は、レスポンスにAccess-Control-Allow-Originヘッダーを含めることです。 – sideshowbarker
@sideshowbarkerありがとうございました。ほぼGoogleのoauthと同じで実行されて、私はすべての可能な方法を試みたが運がない!最後にあなたのご意見が私の問題を解決しました。アンカータグとしてAPI呼び出しを呼び出す代わりに、うまくいきます。どうもありがとうございます。 –