プログラミングと旅と映画の日々

普段はスマホ決済サービスの会社でバッグエンドを担当しているエンジニアです。プログラミングと趣味の映画、株、時々うどんに関してブログを書いていこうと思います。海外ドラマ、クロスバイクも好きです。

【Ruby】facebookでのログインに対応する方法

まずはfacebookのdevelopper用のサイトでアプリを登録しておきます。
developers.facebook.com



gemの導入
OmniAuth: Overview · plataformatec/devise Wiki · GitHub

上記サイトの手順に沿って行います。

f:id:takanori5:20171103195528p:plain

gemfileに以下を追加

gem 'omniauth-facebook'

ターミナルでインストールコマンドを実行

bundle install

f:id:takanori5:20171103195917p:plain

gemがinstallできました

次のステップ
f:id:takanori5:20171103200130p:plain

ターミナルでコマンドを打っていけばOKです。

rails g migration AddOmniauthToUsers provider:string uid:string

f:id:takanori5:20171103200527p:plain
migrationファイルが作成されました!

続いて以下のコマンド

rake db:migrate

f:id:takanori5:20171103200816p:plain
migrate完了です!

続いてdevice.rbを編集
f:id:takanori5:20171103201255p:plain

一番下に設定を追加しました。
f:id:takanori5:20171103201410p:plain

続いてuser.rbを編集
f:id:takanori5:20171103201846p:plain
最後尾に足しました。
f:id:takanori5:20171103201904p:plain


config/routes.rbに以下を追加

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

続いて新規のフォルダをcontroller以下に作成しファイルを作ります。
f:id:takanori5:20171103203745p:plain

こんな感じ
f:id:takanori5:20171103204532p:plain