Devise + Omniauth - How to pass extra parameters along?

Viewed 13487

I have the ability in the app to load /users/auth/facebook to connect to facebook. I want to be able to know where the request came from. Whether it was from a user who is registering with facebook, or a existing user who simply wants to connect with facebook. Based on the type, the responses are very different.

How can I pass a param along to omniauth when authenticating. I tried doing:

/users/auth/facebook?connect_action=signup_connect_to_facebook

But that connect_action param didn't make it when it hit AuthenticationsController#Create

Ideas? Thansk

3 Answers

You have to use the :params options, as in

omniauth_authorize_path(:user, :facebook, var: 'value', var2: 'value2' )

and later in the callback you can access request.env['omniauth.params'] to get the hash! :)

Related