Skip to content
Ruby JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
config Update to Rails 3.2.6
lib Update to Rails 3.2.8
public Update to Rails 3.2.6
vendor Update to Rails 3.2.6
Gemfile.lock Update to Rails 3.2.8
Rakefile Update to Rails 3.2.6


SSO with Devise and Omniauth Client

This is the client that uses ONLY omniauth to connect to a custom provider for single sign on between multiple applications.


git clone git://
bundle install
rake db:create
rake db:migrate

Configure the Client

On the Provider, register this client application:

rails c
> @client =
> @client.app_id = 'some key'
> @client.app_secret = 'some secret'

Copy these same values in the Client config/initializers/omniauth.rb

APP_ID = 'some key' 
APP_SECRET = 'some secret'

# Update your custom Omniauth provider URL here
CUSTOM_PROVIDER_URL = 'http://localhost:3000'

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :josh_id, APP_ID, APP_SECRET

The custom Omniauth strategy

Since we want a single sign-on between our server and our client apps, we need to write a custom omniauth strategy. This is written in lib/josh_id.rb. Please implement your own and / or modify as required.

To test single sign-on

git clone git:// client1
git clone git:// client2

# configure the client1 key and secret in the provider as mentioned above

# In separater terminals start 2 clients
client1 $ rails s -p3001 
client2 $ rails s -p3002

Now, if you login via 1 client, and change the URL to the other, you will be automatically signed-in!


Please feel free to enhance this demo. For any doubts, please send an email to

I am eager to write some rspec for this setup. If you do, please send me a pull request!


This is released under the MIT license.

Something went wrong with that request. Please try again.