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.