Rails 5.2.2
gem 'omniauth-facebook'
gem 'omniauth-twitter'
gem 'omniauth-google-oauth2'
RailsでコミュニケーションAPPを作っています。
一通り完成し、Facebook, Twitter, Googleアカウントを用いてのomniauth認証を入れました。
認証自体は問題なく成功するのですが、以下のようなcorsエラーがchromeでのみ発生します。
Access to fetch at 'https://api.twitter.com/oauth/authenticate?oauth_token=xxxxxxxxxxxx' (redirected from 'http://localhost:3000/users/auth/twitter') from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
認証自体は成功するので放置も考えましたがやはり気持ち悪いので直したいです。
類似案件を調べ、CORSについての説明が記載されれいるブログなど読みましたが、requestヘッダー、responseヘッダーについて理解が進まず設定もうまくいきません。
質問
このエラーはpreflight requestでAccess-Control-Allow-Originを指定すれば直るのでしょうか?
セキュリティー観点の理由から、ブラウザエラーは詳細を出さないようなことを何かで見ましたので、そもそもの方針に問題ないか確認いただけますと幸いです。
補足
omniauthの処理の流れがよくわからないのですが、エラーは以下のような順番で発生するようです。
0. omniauthボタンをタップ
0. エラー発生(?)
0. APIページに遷移
0. 許可を与えた後、localhostにリダイレクト
0. エラーがもう一度発生(?)
あなたの回答
tips
プレビュー