「minimum-OmniAuth-scaffold」Facebook/Twitter/GitHubログインを高速実装! 


プロダクトを作る時にFacebookやTwitter、GitHubのログイン機能を組み込むのはかなり普通に必要になってきました。そんな時にすごく便利なのが、この「minimum-omniauth-scaffold」です。

実際にハッカソンの中ではじめて使いましたが、10〜20分で簡単に実装できてしました。
次の環境で実行できました!

Rails 4.2.5
Ruby 2.3.0

🐰 Gemのインストール

Gemfileに以下を追加して、コンソールでbundleを実行してください。

# Facebook/Twitter/GitHubログイン機能
gem 'minimum-omniauth-scaffold'

ちなみにこちらのgemは、Ruby 2.0+、Rails 4.0+環境用とのことです。

🤔 OmniAuth用のScaffold

次のコマンドを実行して、OmniAuth用のScaffoldを作成。

rails g minimum:omniauth:scaffold

🎳 Facebook/Twitter/GitHubでアプリケーションを作成してキーを登録

Facebook

Facebook Developers - Appでアプリケーションを作成して、App IDとアプリケーションのシークレットキーを取得。

※ 必須マークがながが「Callback URL」も入力必要

Twitter

Twitter Developersでアプリケーションを作成して、キーを取得。

※「新しいアプリケーションを作成」作成後「FacebookでログインするWebサイト」に「http://0.0.0.0:3000/」を入力

GitHub

GitHub Register a new OAuth applicationでアプリケーションを登録してキーを取得。
※ Main URL/Callback URL:「http://0.0.0.0:3000/」

config/settings.local.yml

config/settings.local.ymlに上で取得した情報を登録。

本番用の環境変数の設定

キー情報などはGitリポジトリに含めないほうがいいです。ということでHerokuを使って環境変数にキー情報を登録するのはこちら。

# Twitter
heroku config:set TWITTER_KEY=xxxxxxxxxx TWITTER_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Facebook
heroku config:set FACEBOOK_APP_ID=xxxxxxxxxx FACEBOOK_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# GitHub
heroku config:set GITHUB_CLIENT_ID=xxxxxxxxxx GITHUB_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

認証用のテーブルを作成

マイグレーションコマンドを実行して、認証に必要なテーブルを作成。

rake db:migrate

と、たったこれだけのコマンドでログイン認証に必要な機能をひととおり実装できてしまいます!

継続的に開発を続けてこられている作者の@shu0115さんには感謝感謝です^^

🐯 参考リンク

shu0115/minimum-omniauth-scaffold

Ruby 2.0.0-p247 + Rails 4.0.0 + minimum-omniauth-scaffold - Qiita [キータ]

🎃 変更来歴

(2016/01/17 19:40) 記述修正

📚 おすすめの書籍