From 3eeaacc6f4cb6560ae5f70514c0f2644a6689cc6 Mon Sep 17 00:00:00 2001 From: Zachary Chai Date: Mon, 17 Oct 2016 15:06:11 -0400 Subject: [PATCH] add twitter and google oauth login --- .gitignore | 1 + Gemfile | 3 +++ Gemfile.lock | 34 ++++++++++++++++++++++++++++++++ app/views/landing/index.html.erb | 10 ++++++++++ config/initializers/omniauth.rb | 5 +++++ sample.env | 4 ++++ 6 files changed, 57 insertions(+) create mode 100644 config/initializers/omniauth.rb create mode 100644 sample.env diff --git a/.gitignore b/.gitignore index bab620de..e4089d81 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ /tmp/* !/log/.keep !/tmp/.keep +.env # Ignore Byebug command history file. .byebug_history diff --git a/Gemfile b/Gemfile index e7bff0e5..afc9399f 100644 --- a/Gemfile +++ b/Gemfile @@ -33,6 +33,7 @@ gem 'jbuilder', '~> 2.5' group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platform: :mri + gem 'dotenv-rails' end group :development do @@ -48,4 +49,6 @@ end gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] gem 'omniauth' +gem 'omniauth-twitter' +gem 'omniauth-google-oauth2' gem 'bigbluebutton-api-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index 1f53b57b..aa954982 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,8 +52,14 @@ GEM coffee-script-source (1.10.0) concurrent-ruby (1.0.2) debug_inspector (0.0.2) + dotenv (2.1.1) + dotenv-rails (2.1.1) + dotenv (= 2.1.1) + railties (>= 4.0, < 5.1) erubis (2.7.0) execjs (2.7.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) ffi (1.9.14) globalid (0.3.7) activesupport (>= 4.1.0) @@ -66,6 +72,8 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) + json (1.8.3) + jwt (1.5.6) listen (3.0.8) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) @@ -80,12 +88,35 @@ GEM mini_portile2 (2.1.0) minitest (5.9.1) multi_json (1.12.1) + multi_xml (0.5.5) + multipart-post (2.0.0) nio4r (1.2.1) nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) + oauth (0.5.1) + oauth2 (1.2.0) + faraday (>= 0.8, < 0.10) + jwt (~> 1.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) omniauth (1.3.1) hashie (>= 1.2, < 4) rack (>= 1.0, < 3) + omniauth-google-oauth2 (0.4.1) + jwt (~> 1.5.2) + multi_json (~> 1.3) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.3.1) + omniauth-oauth (1.1.0) + oauth + omniauth (~> 1.0) + omniauth-oauth2 (1.4.0) + oauth2 (~> 1.0) + omniauth (~> 1.2) + omniauth-twitter (1.2.1) + json (~> 1.3) + omniauth-oauth (~> 1.1) puma (3.6.0) rack (2.0.1) rack-test (0.6.3) @@ -164,10 +195,13 @@ DEPENDENCIES bigbluebutton-api-ruby byebug coffee-rails (~> 4.2) + dotenv-rails jbuilder (~> 2.5) jquery-rails listen (~> 3.0.5) omniauth + omniauth-google-oauth2 + omniauth-twitter puma (~> 3.0) rails (~> 5.0.0, >= 5.0.0.1) sass-rails (~> 5.0) diff --git a/app/views/landing/index.html.erb b/app/views/landing/index.html.erb index fed5c740..935f565a 100644 --- a/app/views/landing/index.html.erb +++ b/app/views/landing/index.html.erb @@ -33,3 +33,13 @@ + +<% if current_user.nil? %> + +<% else %> +
Hello <%= current_user.name %>
+<%= link_to 'Logout', '/logout' %> +<% end %> diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb new file mode 100644 index 00000000..0a60c18d --- /dev/null +++ b/config/initializers/omniauth.rb @@ -0,0 +1,5 @@ +Rails.application.config.middleware.use OmniAuth::Builder do + provider :twitter, ENV['TWITTER_ID'], ENV['TWITTER_SECRET'] + provider :google_oauth2, ENV['GOOGLE_OAUTH2_ID'], ENV['GOOGLE_OAUTH2_SECRET'], + scope: 'profile', access_type: 'online', name: 'google' +end diff --git a/sample.env b/sample.env new file mode 100644 index 00000000..434a664a --- /dev/null +++ b/sample.env @@ -0,0 +1,4 @@ +TWITTER_ID= +TWITTER_SECRET= +GOOGLE_OAUTH2_ID= +GOOGLE_OAUTH2_SECRET=