我在
Python 2.7.1下使用django-social-auth和Django 1.3.1.我一直在寻找各地,我无法弄清楚如何使用自定义重定向网址进行Twitter身份验证(或其他提供商).
我已经读过我需要在我的html模板中使用这个模板标签来构建启动过程的链接:
{% url socialauth_begin 'twitter' %}
使用我的settings.py文件中的值为LOGIN_REDIRECT_URL可以正常工作(虽然,请参阅我的问题:Twitter takes users to /en/logged-in/ regardless of my settings)但是,在这种特殊情况下,我需要在返回时将用户重定向到特殊的URL.
我在其他地方读过我需要将带有重定向值的变量’next’传递给模板或作为twitter auth url上的参数传递.这是怎么做到的?我的模板作为HttpResponse加载,因此,虽然我当然可以传递模板值,但我不清楚如何在上面的模板标签中使用它们.
对不起这个基本问题.
解决方法
好吧,我知道这很简单,即使问这个也觉得有点傻.我想我认为django-social-auth有这样做的特殊规定,但显然,这是非常手工的.这是最终在这里结束的其他人的解决方案:
在你看来:
…
来自django.utils.http import urlquote
…
def my_view(request,...): ... redirect_url = urlquote("http://your_required_redirect_url/") ... return render_to_response('your_template.html',{ 'redirect_url' : redirect_url })
在’your_template.html’中:
... Login with <a href="{% url socialauth_begin 'twitter' %}?next={{ redirect_url }}">Twitter</a> ...