From 043ba75e81dfec12be09bed838f6f510071aa7a4 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Fri, 20 Jun 2014 20:13:56 +0300 Subject: [PATCH] Only show OpenID links if their keys have been set. --- README.md | 17 ++++++++++++++++- app/views/devise/shared/_openid.html.haml | 7 +++++-- config/secrets.yml.example | 23 +++++++++++++++++++---- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 05e8d591..c7ad9979 100644 --- a/README.md +++ b/README.md @@ -48,8 +48,23 @@ http://localhost:3000 10. Use openID In order to use the OpenID feature you need to register your application with the providers (Google and Facebook) and enter their API keys in config/secrets.yml file, changing the existing sample values. + You can register as a devoloper with Google from https://code.google.com/apis/console#:access -You can register as a devoloper with Facebook from https://developers.facebook.com/ +You can register as a devoloper with Facebook from https://developers.facebook.com/, +by selecting from the top menu the option 'Apps' -> 'Create a New App' + +Unless you add the key and secret for each provider, you will not be able to see the image that +redirects to the login page of the provider. + +If you add a provider that does not require developers to register their application, you still need +to create two (2) variables, in config/secrets.yml +with the format of providername_key and providername_secret and add some sample text as their values. +Example: +myprovider_key = 'sample data' +myprovider_secret = 'sample data' + +That is required so that the check in app/views/devise/shared/_openid.html.haml will pass and +the image-link to login using the provider will be shown. ### Run OSEM in production We recommend to run OSEM in production with [mod_passenger](https://www.phusionpassenger.com/download/#open_source) diff --git a/app/views/devise/shared/_openid.html.haml b/app/views/devise/shared/_openid.html.haml index e349e434..5d1e6300 100644 --- a/app/views/devise/shared/_openid.html.haml +++ b/app/views/devise/shared/_openid.html.haml @@ -1,4 +1,7 @@ - if devise_mapping.omniauthable? - resource_class.omniauth_providers.each do |provider| - = link_to image_tag("#{provider}.png", size: '32x32') + provider , omniauth_authorize_path(resource_name, provider) - %br + - provider_key = "#{provider}_key" + - provider_secret = "#{provider}_secret" + - unless Rails.application.secrets.send(provider_key).blank? || Rails.application.secrets.send(provider_secret).blank? + = link_to image_tag("#{provider}.png", size: '32x32') + provider , omniauth_authorize_path(resource_name, provider) + %br diff --git a/config/secrets.yml.example b/config/secrets.yml.example index a98d4779..0671fb71 100644 --- a/config/secrets.yml.example +++ b/config/secrets.yml.example @@ -10,11 +10,26 @@ defaults: &defaults # Your errbit API key # errbit_key: '12345' - google_key: 'changeme' - google_secret: 'changeme' + # Leave the variables' names empty, unless you use the providers, in which case you need to + # register your applicaton and add the actual keys. - facebook_key: 'changeme' - facebook_secret: 'changeme' + # If you add more providers, keep the format of the variables: provider_key, provider_secret + + # Register your appllication with Google from https://code.google.com/apis/console#:access + google_key: '' + google_secret: '' + + # Register your application with Facebook from https://developers.facebook.com/ + facebook_key: '' + facebook_secret: '' + + # Developers do not need to register their application for novell account to work. + # You must, however, leave the sample data there, for the login option to appear. + + novell_key: 'sample data' + novell_secret: 'sample data' + + # If you add more providers that do not require a key, you still have to create the 2 variables with sample data development: <<: *defaults