質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Q&A

解決済

1回答

3069閲覧

RailsでDeviseとOmniauthでFacebookログインを作ったが、callbackが呼ばれない

hrmths

総合スコア17

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

0グッド

0クリップ

投稿2017/12/19 23:38

編集2017/12/19 23:57

状況

Railsでウェブアプリケーションを開発しており、DeviseとOmniauthでFacebookログインを作りました。
検証環境(cloud9で開発中)では、facebook認証後、必要な情報を取得してユーザーを作成するところまでちゃんと動いているのですが、本番環境(さくらVPS)では、認証は成功するが、callbackが呼ばれずにユーザー作成ができない状況です。

どのような問題が考えられるのでしょうか。検証環境では動いているのでソースコードの問題ではなく、facebookアプリ側の設定の問題かもと思い色々調べたのですが検討がつかずでして。。

環境

(本番環境)
ruby 2.3.0
Rails 5.0.1

情報不足しておりましたら追記いたします。

ログ

検証環境での認証時のログ

Started GET "/users/auth/facebook" for 111.222.33.44 at 2017-12-19 22:41:52 +0000 Cannot render console from 111.222.33.44! Allowed networks: 111.0.0.1, ::1, 127.0.0.0/127.255.255.255 I, [2017-12-19T22:41:52.716185 #3219] INFO -- omniauth: (facebook) Request phase initiated. Started GET "/users/auth/facebook" for 111.222.33.44 at 2017-12-19 22:41:53 +0000 Cannot render console from 111.222.33.44! Allowed networks: 111.0.0.1, ::1, 127.0.0.0/127.255.255.255 I, [2017-12-19T22:41:53.546113 #3219] INFO -- omniauth: (facebook) Request phase initiated. Started GET "/users/auth/facebook/callback?code=VERYVERYLONGSTRING_VERYVERYLONGSTRING_VERYVERYLONGSTRING" for 111.222.33.44 at 2017-12-19 22:41:53 +0000

本番環境での認証時のログ
エラーを吐かない。callbackが呼ばれていない。。

Started GET "/users/auth/facebook" for 223.217.13.23 at 2017-12-20 07:42:16 +0900 Started GET "/users/auth/facebook" for 223.217.13.23 at 2017-12-20 07:42:16 +0900 Started GET "/" for 111.222.33.44 at 2017-12-20 07:42:16 +0900

omniauth_callback_controller.rb

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def facebook @user = User.from_omniauth(request.env['omniauth.auth']) if @user.persisted? sign_in_and_redirect @user, event: :authentication set_flash_message(:notice, :success, kind: 'Facebook') if is_navigational_format? else session['devise.facebook_data'] = request.env['omniauth.auth'] redirect_to new_user_registration_url end end def failure redirect_to root_path, alert: 'Facebook認証に失敗しました。' end end

routes.rb

Rails.application.routes.draw do devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations: 'users/registrations', sessions: 'users/sessions' }

これが状況的には近そうにみえる。
https://stackoverflow.com/questions/38868738/devise-with-omniauth-facebook

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Facebookに登録している有効なOauthリダイレクトURIは,本番環境の意図したURLになっているでしょうか.

普段,検証環境と本番環境とで別のアプリIDを使っているので,まと外れの回答であれば申し訳ありません.

Facebookアプリの設定

投稿2017/12/20 00:21

togino77

総合スコア143

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hrmths

2017/12/20 00:38

あ、そこ普通にドメインを入力していましたが、account/auth/facebook/callback にしないと行けないんですね。それで試してみます!ありがとうございます!
togino77

2017/12/20 00:44

omniauth を使っているモデルは User モデルのようですので パスは users/auth/facebook/callback になるかと思います. bin/rails routes でご確認ください わたしが扱っているウェブアプリでは Account モデルと User モデルが別々(1対多)ですので.このようなパスになってます
hrmths

2017/12/20 14:16

account/auth/facebook/callback で行けそうな感じなのですが、facebook認証後のリダイレクトURLがhttpになっている(サイトはhttps)ので、まだうまくいきません。ここをhttpsにすればいける気がするのですが、その方法がわからず。どのように対応したらよいかもし分ければ教えていただけると助かります。 https://www.facebook.com/v2.6/dialog/oauth?client_id=1234567890&redirect_uri=http%3A%2F%...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問