Get a username when using Devise and Omniauth

21 views
Skip to first unread message

Michael Prieto

unread,
Dec 29, 2015, 4:28:32 PM12/29/15
to Ruby on Rails: Talk
Hello everyone o/

I'm currently building a Rails app and I'm using Devise and Omniauth (Google OAuth2 and Facebook) for authentication. All users are going to have unique usernames. This is not a problem when I'm using just a form, but when the users tries to sign up using Omniauth, I can't get a username that I can ensure is unique and fits the criteria I've made for a valid username. If I do try to sign up with it, it just redirects to the form that regular users would use to sign up.

I've thought about redirecting the user to a separate page where they create a username, but I don't know how I would go about this. Searching the internet has not yielded any results either. 

Does anyone know how I could accomplish this? I'm open to any ideas.

Thanks :)

Matt Jones

unread,
Dec 30, 2015, 2:54:52 PM12/30/15
to Ruby on Rails: Talk
One way I've done similar things is by overriding 'after_sign_in_path_for'. See the Devise docs for an example:


Based on the requirements you've described, one option would be to check on sign-in to see if a user has no username and redirect them to a page that requests one. Your DB models may require some work to make it possible to create a "user" with an empty username.

--Matt Jones 
Reply all
Reply to author
Forward
0 new messages