環境
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制約をつけたり、色々と調整が必要な気もするので、調査でき次第、更新します!