From my Django app, how to I redirect a user to somescheme://someurl.com?
To give you some context in case it helps, I have a working oauth2 server written in Python/Django and I need to allow users to register redirect_uris that have a custom URL scheme. This custom URL scheme is used for handling the redirect within native apps.
My first reaction was to use an HttpResponseRedirect, but this URL has a custom scheme and isn't HTTP so I'm guessing this is not what I want. Thanks in advance for any advice you can give.
Edit: I did try this and Django returns the response redirect correctly without throwing an error, but the browser does not redirect to this URL. I'm using Chrome to test this.
Edit 2: HttpResponseRedirect works fine in safari.
This actually should not work as Django is only allowing redirects to http
, https
and ftp
by default for security reasons:
https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued/
I was having the same issue with OAuth and redirect to custom schemes.
Django (on Apache) is throwing 500's (django.core.exceptions.SuspiciousOperation
) when redirecting to custom schemes. The solution is to create your own HttpResponseRedirect
subclass or just do:
location = < your redirect URL >
res = HttpResponse(location, status=302)
res['Location'] = location
return res