【问题标题】:Django Social Auth not redirecting to next url?Django Social Auth 没有重定向到下一个 url?
【发布时间】:2014-10-26 21:19:55
【问题描述】:

所以我想在登录后重定向到同一页面。但是 Django Social Auth 没有重定向。 它重定向到"/pins/#_=_

HTML:

<a href="{% url socialauth_begin 'facebook' %}?next={{ request.get_full_path }}">Facebook Login</a>

网址.py

url(r'^$', 'pinry.core.views.home', name='home')

Views.py

def home(request):
    if request.user.is_authenticated():
        if 'next' in request.GET:
            return HttpResponseRedirect(request.GET['next'])
        else:    
            return HttpResponseRedirect('/pins'))
    return HttpResponseRedirect(reverse('core:concept'))

Settings.py

LOGIN_URL          = '/login-form/'
LOGIN_REDIRECT_URL = '/'
LOGIN_ERROR_URL    = '/login-error/'
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/pins/'
SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/'
SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/'
SOCIAL_AUTH_BACKEND_ERROR_URL = '/new-error-url/'

SOCIAL_AUTH_COMPLETE_URL_NAME  = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user'

TEMPLATE_CONTEXT_PROCESSORS = (
...
    "social_auth.context_processors.social_auth_by_name_backends",
    'social_auth.context_processors.social_auth_backends',
    'social_auth.context_processors.social_auth_by_type_backends',
    'social_auth.context_processors.social_auth_login_redirect',
    "django.core.context_processors.csrf"
    )

【问题讨论】:

    标签: python django facebook-login django-socialauth


    【解决方案1】:

    我遇到了和你一样的问题,我通过更改我的登录按钮 URL 解决了这个问题

    &lt;a href="{% url 'social:begin' 'github' %}&gt;

    &lt;a href="{% url 'social:begin' 'github' %}?next={{ request.GET.next }}&gt;

    【讨论】:

    • 在这种情况下request.GET.next 是什么?
    • @kn3l request.GET.next 将是您在查询参数中为 next 设置的任何内容。例如:www.example.com?next=/home/ 所以下一个将是/home
    【解决方案2】:

    LOGIN_REDIRECT_URL = '/pins/' 更改为LOGIN_REDIRECT_URL = '/',或任何您想要重定向的内容 这个属性告诉登录后重定向到哪里

    【讨论】:

    • 添加了我的 urls.py 和 views.py。 DSA登录后如何在GET请求中传递下一个参数?目前它不存在,因此它重定向到“/pins”
    • 这不能回答问题。他想要做的是,如果用户从图片/自然等其他页面重定向到登录页面,他希望用户转到该特定页面图片/自然。
    猜你喜欢
    • 2015-06-08
    • 2017-08-04
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多