如何将查询参数添加到django-allauth LOGIN_REDIRECT_URL? [英] How to add query parameters to django-allauth LOGIN_REDIRECT_URL?

查看:110
本文介绍了如何将查询参数添加到django-allauth LOGIN_REDIRECT_URL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  1. 我的JS文件嵌入在第三方页面上
  2. JS文件使用jsonp请求与我的服务器通信,该请求返回一个值,该值存储在变量 x
  3. 现在我想对该用户进行身份验证,但要正确进行身份验证(为了使我的应用程序逻辑正常工作),我需要存储在特定于第三方页面的JS内的 x
  4. 我通过allauth使用Facebook登录

window.open("http://localhost:8000/accounts/facebook/login/?method = oauth2","AskAFriend Facebook登录",菜单= 0,工具栏= 0;滚动条= 0;对话框= 0;可调整大小= 1,宽度= 480px,高度= 320px);

  1. 上面的代码为Facebook登录过程打开了一个新窗口,完成后重定向到我在django应用中设计的视图,我通过在中提供该视图的网址来实现此目的 settings.py

现在我需要一种方法来向此请求添加参数,该参数可以在登录完成后到达我的视图,我该如何实现呢?

我尝试将其添加到我的JS中使用的url中,例如 window.open("http://localhost:8000/accounts/facebook/login/?method = oauth2& * valueofx ='+ x * ... (没有用)(忽略*)

i have tried adding it to the url i used in my JS like window.open("http://localhost:8000/accounts/facebook/login/?method=oauth2&*valueofx=' + x* ... (did not work)(ignore the *)

我已阅读有关使用自定义适配器覆盖 get_login_redirect_url()函数的信息,但我不知道如何针对我的具体情况

I have read about overriding the get_login_redirect_url() function by using a custom adapter but i can't figure out how to do it for my specific case

推荐答案

您可以将 LOGIN_REDIRECT_URL 更改为/redirect 之类的内容,而这又将是一个中介"用于控制用户重定向到的位置的视图.

You could change LOGIN_REDIRECT_URL to something like /redirect and this will in turn be an 'intermediary' view that controls where the user gets redirected to.

该视图可能看起来像这样(未经测试):

That view could look something like this (untested):

from django.views.generic import View
from django.http import HttpResponseRedirect

class LoginRedirectIntermediary(View):
    """
    Decides where a newly logged in user should go based on the request.
    """
    def get(self, request, *args, **kwargs):
        if request.user.is_superuser:
            url = '/admin-panel/{}/'
        else:
            url = '/user-panel/{}/'

        return HttpResponseRedirect(url.format(request.user.username))

这篇关于如何将查询参数添加到django-allauth LOGIN_REDIRECT_URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆