Sometimes we get URLs like the following:
http://localhost:4000/auth/auth0%3Fstate=SFMyNTY.g2gDbQAAAAEvbgYACML2VY0BYgABUYA.k0AfdGrG5hm4Cza7WKxIU_ti05nycjEOftJQi1l-t4I
for the following route
scope "/auth", MyAppWeb do
pipe_through :browser
get "/:provider", AuthController, :request
end
This should be a valid UTF-8 URL.
The problem is that when the controller function reads this, it puts the whole state in the
params value for provider
%{"provider" => "auth0?state=SFMyNTY.g2gDbQAAAAEvbgYACML2VY0BYgABUYA.k0AfdGrG5hm4Cza7WKxIU_ti05nycjEOftJQi1l-t4I"}
instead of separating them into provider and state.
This is causing some errors with our Ueberauth integration, as it can’t recognize that whole string as a provider.
Is there a configuration I am missing to split the string on %3F instead of ? on the request path? Any other alternative?






















