在我的 Django 应用程序中,如何将用户重定向到 somescheme://someurl.com?
为了给您一些背景信息,以防有帮助,我有一个用 Python/Django 编写的工作 oauth2 服务器,我需要允许用户注册具有自定义 URL 方案的 redirect_uris。此自定义 URL 方案用于处理本机应用程序内的重定向 http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW20.
我的第一反应是使用 HttpResponseRedirect,但是这个 URL 有一个自定义方案并且不是 HTTP,所以我猜这不是我想要的。预先感谢您提供的任何建议。
编辑:
我确实尝试过这个,Django 正确返回响应重定向而不会引发错误,但浏览器不会重定向到此 URL。我正在使用 Chrome 来测试这一点。
编辑2:
HttpResponseRedirect 在 safari 中工作正常。
这其实不应该因为 Django 只允许重定向到http
, https
and ftp
出于安全原因默认:
https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued/ https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued/
我在 OAuth 和重定向到自定义方案方面遇到了同样的问题。
Django(在 Apache 上)抛出 500 的(django.core.exceptions.SuspiciousOperation
) 重定向到自定义方案时。解决方案是创建自己的HttpResponseRedirect
子类或只是做:
location = < your redirect URL >
res = HttpResponse(location, status=302)
res['Location'] = location
return res
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)