ご存じる方助けて頂けたいです。
FACEBOOKログイン実装後、フロント画面でFACEBOOKのログインボタンを押下したら、アプリIDが無効なものです指定されたアプリIDは無効なアプリIDのようです。と表示します。
①gemfile:
gem 'devise'
・・・
gem 'omniauth-facebook'
②devise.rb
config.omniauth :facebook, FACEBOOK_ID='9823600292XXXXXX', FACEBOOK_SECRET_KEY='5bfc0bc4bb20e4d1df86XXXXXXXX'
*もともと次のソースコードですが、わからなくて、上記のIDとKEYに置き換えました。IDとKEYはFACEBOOKの設定画面で確認しました。
(config.omniauth :facebook, Rails.application.credentials.dig(Rails.env.intern, :facebook, :app_id), Rails.application.credentials.dig(Rails.env.intern, :facebook, :app_secret))
③user.rb
devise :database_authenticatable,
・・・・・
:omniauthable, omniauth_providers: %i[facebook]
④omniauth_callbacks_controller
def facebook
callback_from :facebook
end
def failure
redirect_to root_path, alert: '認証に失敗しました'
end
private
def callback_from(provider)
@user = User.from_omniauth(request.env["omniauth.auth"])
if @user.persisted? if @user.confirmed_at.nil? redirect_to new_user_registration_path, notice: 'XXXXXXXXXXXXXXXXX' else sign_in_and_redirect @user, event: :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, kind: provider.to_s.capitalize) if is_navigational_format? end else session["devise.#{provider.to_s}_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url end
end
⑤routes.rb
devise_for にomniauth_callbacks: 'users/omniauth_callbacks',を追加
あなたの回答
tips
プレビュー