-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need to be able to store some context before sending to the provider #65
Comments
I would love to see this implemented - if there is a chance of it being merged, I can likely create a pull... @bbangert thoughts? |
There is a different context for each provider(FacebookAuthenticationComplete, TwitterAuthenticationComplete, etc.), so you can attach different Pyramid views to different contexts, if you are using velruse as a Pyramid plugin. Something like:
|
@jayd3e - I think we are talking about different kinds of context... I need to be able to store arbitrary data before redirecting the user, and then receive it when the user arrives back. I'm suggesting support for, for example, OAuth2's 'state' parameter described in section 4.1.1 of the OAuth2 spec. |
Gotcha. Yah, in my apps I would likely store that kind of information in the session, and then remove those variables once authentication is complete. I'll have to take a look at OAuth2's 'state' parameter though, as it would be nice if velruse supported the full spec. |
Velruse would probably store this information in the session. It tends to use the state parameter for CSRF checks to validate the authentication. With that in mind, I'm not sure how much velruse should do here versus you just storing the data in the session before redirecting to the velruse login endpoint. Thoughts? |
FWIW this is similar to #55 |
I'm using velruse as a Pyramid app. In the old velruse, it was very convenient to pass endpoint as a parameter which is POSTed to velruse provider form handler. Later, when velruse receives the response from provider, it would redirect to the endpoint given as the parameter during the first POST. That being said, one option for the new velruse providers would be to take some "context" parameter during the initial POST. Save it to session under uuid-like key that is received from the provider as the "state" parameter (so as to allow for simultaneous auth transactions). And then in auth_complete_view take the "context" from session and pass it to the endpoint url. Would that work? Does anyone have better options in mind? |
Of course, overriding the endpoint (that is now taken from config) for an individual form would also be nice. |
I had not considered simultaneous auth transactions for a single user to be a priority. |
@sontek What do you think about just adding a |
Another option is to hook into Pyramid's event system. Basically when the login view is invoked it could emit an event containing the |
I guess something like |
@sontek would the solution proposed by @mmerickel work for you? Do you have other ideas? |
@mmerickel @naktinis This would work for me. |
I would to allow about registration and authentication via social networks but want to handle what happens when it comes back differently.
There is no way to currently know where the auth was initiated.
The text was updated successfully, but these errors were encountered: