Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Support (and manage) Authentication with multiple OmniAuth providers in your Rails application

This branch is 136 commits ahead, 2 commits behind stephenaument:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app Merge remote-tracking branch 'origin' into hassox/generate
script Revised to be *only* a mountable engine; Updated configuration to be …
.rspec specs for the user and identity models is in place, still need to eli…
.travis.yml Update .travis.yml
Gemfile.lock Merge remote-tracking branch 'origin' into hassox/generate
Rakefile Revised to be *only* a mountable engine; Updated configuration to be …

Socialite Build Status

This is an opinionated Rails 3.1 mountable engine provides your application with support for managing multiple OAuth providers per User.

Why make this?

Every site I have built in the past couple years has required implementing authentication support for Users. Now this was simple enough when it was only one provider (in my case, "Login with Facebook"), but more often then not it evolved into "Login with <insert_oauth_provider>".

Now OmniAuth has some good write-ups on handling multiple providers, but it lacked any support for restricting a user to one identity per provider. Socialite aims to solve this and while enforcing every user to have a Basic Authentication identity as a fall-back in case of password recovery.

What makes this unique?

  1. Every User can only have one identity per supported provider
    • Example: User can have only 1 linked Facebook Identity at any given time
  2. Every User must have an basic-auth identity
    • Example: User signs up through Facebook, but unlinks it. Enforcing a local basic auth mechanism aids account recovery.
  3. Supports any provider strategy in the OmniAuth project.



To use Socialite in a Rails 3.1 application:

  • Require it in the Gemfile: gem 'socialite', git: 'git://
  • Install the gem it by running bundle install.
  • Run the socialite generator using rails g socialite:install for typical installs and rails g active_record:socialite for specifying custom options.


This project began as a fork of Tim Riley's great Omnisocial plugin. The motivation for this fork is that I required multiple authorizations for each account (linking support) and wanted a proper mountable Rails 3.1 Engine.

Copyright & License

Socialite is Copyright (c) 2011- 2013 Justin Smestad. All Rights are Reserved. Code is distributed under the Apache 2.0 License. See LICENSE file for more information.

The original OmniSocial code is Copyright (c) 2010-2011 Tim Riley and Icelab, and is released under MIT License.

Something went wrong with that request. Please try again.