我在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)但是,在这种特殊情况下,我需要重定向用户返回后的特殊网址。
我已经在其他地方读过我需要传递变量' next'使用我的重定向值到模板或作为twitter auth url上的参数。这是怎么做到的?我的模板作为HttpResponse加载,因此,虽然我当然可以传递模板值,但我不清楚如何在上面的模板标签中使用它们。
对不起这个基本问题。
答案 0 :(得分:7)
在您看来: ... 来自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>
...
答案 1 :(得分:0)
我正在使用此代码:
<a href="{% url socialauth_begin 'twitter' %}?next={{ request.get_full_path }}">Login with Twitter</a>
这行代码会重定向到同一页面,您甚至可以将其设置为标题。