adds omniauth basic authentication process with Twitter, including an intermediate step to ask the user for her email if not provided by the OAuth provider - Twitter, for instance

This commit is contained in:
David Gil
2015-08-24 19:44:46 +02:00
parent f0e47ee787
commit 158e203936
16 changed files with 167 additions and 19 deletions

View File

@@ -239,6 +239,7 @@ Devise.setup do |config|
# Add a new OmniAuth provider. Check the wiki for more information on setting
# up on your models and hooks.
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
config.omniauth :twitter, Rails.application.secrets.twitter_key, Rails.application.secrets.twitter_secret
# ==> Warden configuration
# If you want to use other strategies, that are not supported by Devise, or

View File

@@ -1,4 +0,0 @@
Rails.application.config.middleware.use OmniAuth::Builder do
provider :developer unless Rails.env.production?
provider :twitter, Rails.application.secrets.twitter_key, Rails.application.secrets.twitter_secret
end

View File

@@ -55,4 +55,4 @@ es:
not_locked: "no estaba bloqueado."
not_saved:
one: "1 error impidió que este %{resource} fuera guardado:"
other: "%{count} errores impidieron que este %{resource} fuera guardado:"
other: "%{count} errores impidieron que este %{resource} fuera guardado:"

View File

@@ -148,3 +148,9 @@ en:
all: "You are not authorized to %{action} %{subject}."
welcome:
last_debates: Last debates
omniauth:
finish_signup:
title: Add Email
twitter:
sign_in: Sign in with Twitter
or: or

View File

@@ -148,3 +148,9 @@ es:
all: "No tienes permiso para realizar la acción '%{action}' sobre %{subject}."
welcome:
last_debates: Últimos debates
omniauth:
finish_signup:
title: Añade tu email
twitter:
sign_in: Inicia sessión con Twitter
or: o

View File

@@ -1,10 +1,19 @@
Rails.application.routes.draw do
devise_for :users, controllers: { registrations: 'users/registrations' }
devise_for :users, controllers: {
registrations: 'users/registrations',
omniauth_callbacks: 'users/omniauth_callbacks'
}
devise_for :organizations, class_name: 'User',
controllers: {
registrations: 'organizations/registrations',
sessions: 'devise/sessions'
}
sessions: 'devise/sessions',
},
skip: [:omniauth_callbacks]
devise_scope :user do
get :finish_signup, to: 'users/registrations#finish_signup'
patch :do_finish_signup, to: 'users/registrations#do_finish_signup'
end
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".