酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

「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を実行してください。

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

ちなみにこちらのgemは、Ruby2.0+、Rails4.0+環境用とのことです。

OmniAuth用のScaffold

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

1
rails g minimum:omniauth:scaffold

Facebook/Twitter/GitHubでアプリを作成してキーを登録

Facebook

Facebook Developers - Appでアプリを作成して、App IDとアプリのシークレットキーを取得。
※ 必須マークが無いが 「Callback URL」も入力必要

Twitter

Twitter Developersでアプリを作成して、キーを取得。
※ 「新しいアプリを作成」作成後「Facebookでログインするウェブサイト」に「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を使って環境変数にキー情報を登録するのはこちら。

1
2
3
4
5
6
7
8
# 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

認証用のテーブルを作成

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

1
rake db:migrate

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

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

Special Thanks

shu0115/minimum-omniauth-scaffold

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

変更来歴

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

おすすめの書籍