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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

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

Facebook

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

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

2986閲覧

Railsアプリをローカル環境下でFacebook認証可能にしたい

pekapekatail

総合スコア32

Devise

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

Facebook

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

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2018/04/21 12:15

編集2018/04/22 18:07

初心者です。Ruby on Railsを使ってログイン時にFacebook認証させるアプリをローカルで開発しているのですが、認証時に「URLを読み込めません: このURLのドメインはアプリのドメインに含まれていません。」というエラーが表示されてしまい、認証を完了することができません。どのように設定を変更すればよいか、どなたかご教示頂けますと幸いです。

前提条件・しようとしていたこと

  • gem 'facebook-omniauth', 'devise'を使って、ユーザーがログインする際にfacebook認証をさせる
  • この記事を参考に、gem 'thin'を使ってhttps://localhost:3001/ からruby on railsを実行
  • ユーザーはcolleaguesというテーブルに格納されている

各種コードやfacebook appの設定は以下の通りです。

fb_1

fb_2

  • Colleagueモデルの構造:
id: integer email: string encrypted_password: string reset_password_token: string reset_password_sent_at: datetime remember_created_at: datetime sign_in_count: integer current_sign_in_at: datetime last_sign_in_at: datetime current_sign_in_ip: string last_sign_in_ip: string created_at: datetime updated_at: datetime provider: string uid: string name: string
  • トップページ
~~省略~~ <%= link_to "Sign in with Facebook", colleague_facebook_omniauth_authorize_path %>
  • app/controllers/colleagues/omniauth_callbacks_controller.rb
class Colleagues::OmniauthCallbacksController < Devise::OmniauthCallbacksController include Devise::Controllers::Rememberable def facebook @colleague = Colleague.from_omniauth(request.env["omniauth.auth"]) if @colleague.persisted? sign_in_and_redirect @colleague, 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_colleague_registration_url end end def failure redirect_to root_path end protected def after_sign_in_path_for(resource) request.env['omniauth.origin'] || stored_location_for(resource) || root_path end end

症状

以下のようにエラーが表示されていまい、処理を完了することができません。

エラーメッセージ

  • Terminal
$ bundle exec thin start --ssl -p 3001 Using rack adapter Thin web server (v1.7.2 codename Bachmanity) Maximum connections set to 1024 Listening on 0.0.0.0:3001, CTRL+C to stop I, [2018-04-21T20:53:32.533982 #70381] INFO -- omniauth: (facebook) Request phase initiated. I, [2018-04-21T20:53:32.955260 #70381] INFO -- omniauth: (facebook) Request phase initiated.

おそらくfacebook appの設定を誤っているのかと思うのですが、どのように対応して良いかわかりません。
どなたか教えて頂けますと幸いです。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました!
Facebook app 上のコールバックURLを以下のようにしたら直りました!

https://localhost:3001/XXX[モデル名]/auth/facebook/callback

投稿2018/04/22 19:16

pekapekatail

総合スコア32

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問