railsでfacebookを用いた、ソーシャルログイン(および新規登録)を実装
自身の記憶定着用の備忘録
【参考にした記事】
device:gemの公式
https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
実際の実装に使用させていただいた記事
https://qiita.com/keirof1892/items/4d086e5ed0872dee7dac
deviceを使わず実装しているため、概念的な理解に使用させていただいた記事
https://qiita.com/memetics/items/214babcebae32c52933c
実装の流れ
①facebook divに登録
②omniauthの導入
③snsからの情報を記録するテーブル(sns_credential )の作成
④userとsns_credentialアソシエーションの設定
⑤facebookから情報を取得することを許可するための環境変数の設定
⑥userモデルのdeviseに:omniauthable,omniauth_providers:の追加
⑦self.find_oauth(auth)メソッドをuserモデルに設定
facebookから得た情報はauth.info.〇〇で表現できる。
メソッド内の条件分岐は
1.自身のアプリにすでにsns_credentialの登録があるユーザーかどうか
2.自身のアプリにすでにuserの登録があるかどうか
分ける。
条件分岐の意図は userがない場合は新規作成(sing_up)、
userある場合は(sign_in)させるため.
sns_credentialのテーブルにすでに、データが存在する場合は、
そのデータを用い て、ログインする。sns_credentialの情報がない場合は、
facebookから取得した情報を登録し、その情報を持ってログインする。
⑧