Devise vs OmniAuth: What are the differences?
Developers describe Devise as "Flexible authentication solution for Rails with Warden". Devise is a flexible authentication solution for Rails based on Warden. On the other hand, OmniAuth is detailed as "OmniAuth is a flexible authentication system utilizing Rack middleware". OmniAuth is a Ruby authentication framework aimed to abstract away the difficulties of working with various types of authentication providers. It is meant to be hooked up to just about any system, from social networks to enterprise systems to simple username and password authentication.
Devise and OmniAuth belong to "User Management and Authentication" category of the tech stack.
Some of the features offered by Devise are:
- Is Rack based
- Is a complete MVC solution based on Rails engines
- Allows you to have multiple models signed in at the same time
On the other hand, OmniAuth provides the following key features:
- Multi-provider authentication
- Over 200 supported authentication providers (see list at https://github.com/intridea/omniauth/wiki/List-of-Strategies)
- Open source
"Reliable" is the primary reason why developers consider Devise over the competitors, whereas "Easy Social Login" was stated as the key factor in picking OmniAuth.
Devise and OmniAuth are both open source tools. Devise with 20K GitHub stars and 4.76K forks on GitHub appears to be more popular than OmniAuth with 6.88K GitHub stars and 877 GitHub forks.
StackShare, Accenture, and Movielala are some of the popular companies that use Devise, whereas OmniAuth is used by StackShare, Code School, and DSTLD. Devise has a broader approval, being mentioned in 56 company stacks & 30 developers stacks; compared to OmniAuth, which is listed in 20 company stacks and 17 developer stacks.
What is Devise?
What is OmniAuth?
Need advice about which tool to choose?Ask the StackShare community!
What are the cons of using Devise?
What are the cons of using OmniAuth?
Sign up to get full access to all the companiesMake informed product decisions
We use OmniAuth with Devise to authenticate users via Twitter, GitHub, Bitbucket and Gitlab. Adding a new OmniAuth authentication provider is basically as easy as adding a new Ruby gem!
The only drawback I could see is that your OmniAuth+Devise
OmniauthCallbacksController redirection logic can easily get hairy over time. So you have to be vigilant to keep it in check.
Devise handles user registration with low effort. Also is configurable in so many levels, from custom views to create-your-own controllers.
4 years of experience using Devise for User management, authentication, and authorization.