前提環境
Rails 5.1.6
ruby 2.5.1p57
ブラウザ chrome
APP ID , APP secret アプリに設定済み
発生している問題・エラーメッセージ
Deviseによるfbによるログインを実装しようとしたところ
ブラウザー上に「アプリIDが無効なものです」
とのエラーが出た。
FB設定時に有効なOAuthリダイレクトURIやHTTPSを強制の項目を切り替えられないため、URIが一致しないことが原因であると考え、ググったところこちらの記事( https://qiita.com/kent_ear/items/6fcc477392aaede175f4 )の方法により
brew cask install ngrok
↓
ngrok http 3000 コマンド入力
↓
生成されたドメインを元に FB設定の有効なOAuthリダイレクトURI項目に当時生成されたhttps://d65dc987.ngrok.io/users/auth/facebook/callbackを登録保存
↓
railsサーバー起動
↓
FB認証リンクを押す
↓
同様のエラー発生
その他、設定 → ベーシック サイトURLをhttps://d65dc987.ngrok.io/にして試すも同様のエラー
##エラーコード
Started POST "/users/auth/facebook" for 127.0.0.1 at 2020-04-05 02:34:52 +0900 I, [2020-04-05T02:34:52.762987 #1154] INFO -- omniauth: (facebook) Request phase initiated.
/views/devise/shared/_links.html.erbdリンク部コード
<%- if devise_mapping.omniauthable? %> <%- resource_class.omniauth_providers.each do |provider| %> <%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider),:method => :post %><br /> <% end %> <% end %>
###ルーティング
Rails.application.routes.draw do root 'home#top' devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations: 'users/registrations' } resources :users, only: %i[show index] do member do get :following, :followers end end end
###Users/omniauth_callbacks_controller.rbコード
class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :configure_permitted_parameters, if: :devise_controller? def after_sign_in_path_for(resource) root_path end protected #登録時と編集時に独自カラムのストロングパラメータ追加 def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: %i(name uid image provider)) devise_parameter_sanitizer.permit(:account_update, keys: %i(name uid image provider)) end end
##devise.rbのコード 一部
config.omniauth :facebook, ENV['FACEBOOK_ID'], ENV['FACEBOOK_SECRET'], { :secure_image_url => 'true', :image_size => 'large' }
夜通しでやってますが一向に解決できないので分かる方いらっしゃいましたらご教授いただければ幸いです。
あなたの回答
tips
プレビュー