LoginSignup
0
3

More than 5 years have passed since last update.

Rails5でFacebook認証を導入する方法

Last updated at Posted at 2019-04-24

環境

ruby 2.6.3
Rails 5.2.3

前提

deviseで、ログイン機能を導入しておく。

※参考サイト
https://ruby-rails.hatenadiary.com/entry/20140804/1407168000#devise-add-column-to-model

ハマるポイント

1.対象サイトについて、SSL証明書の発行が必須
→localで動作確認したい場合に困った.....

2.コールバックURLの実装
→ルートURLだけで、以前はよかったような....

SSL証明書の発行

https://qiita.com/t12u/items/52721d3ea2ce1e605ae9
ここの説明通りに実装して行くと、localでもhttpsでサーバーを立ち上げることができる

Facebook for developers側でコールバックURLの設定

有効なOAuthリダイレクトURIの設定の際に、
URLの後ろに/users/auth/facebook/callbackをつける

実際の実装手順

追加情報

Gemfile(envファイルを使ってでID/PASSをgithubにプッシュしないように!!)
gem 'omniauth'
gem 'omniauth-facebook'

group :development do
  # 〜省略〜

  gem 'dotenv-rails'

end
routes.rb(順番を逆にすると無限ループし、リダイレクトされない)
# ここは、作成するアプリ毎で変える。ただ、コールバックURLの設定を先に読ませないと、エラーになる。

Rails.application.routes.draw do
      devise_for :users, controllers: {
        omniauth_callbacks: 'users/omniauth_callbacks',
        sessions: 'users/sessions'
      }
end
config/initializers/devise.rb(絶対にID/PASSを直書きしない!!)
  config.omniauth :facebook, ENV["APP_ID"], ENV["APP_SECRET"], scope: 'email', info_fields: 'email,name'

DBのカラム周りに関して、NOT NULL制約をつけたり、色々と調整が必要な気もするので、調査でき次第、更新します!

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3