如何将查询参数添加到django-allauth LOGIN_REDIRECT_URL? [英] How to add query parameters to django-allauth LOGIN_REDIRECT_URL?
问题描述
- 我的JS文件嵌入在第三方页面上
- JS文件使用jsonp请求与我的服务器通信,该请求返回一个值,该值存储在变量
x
中 - 现在我想对该用户进行身份验证,但要正确进行身份验证(为了使我的应用程序逻辑正常工作),我需要存储在特定于第三方页面的JS内的
x
值 - 我通过allauth使用Facebook登录
window.open("http://localhost:8000/accounts/facebook/login/?method = oauth2","AskAFriend Facebook登录",菜单= 0,工具栏= 0;滚动条= 0;对话框= 0;可调整大小= 1,宽度= 480px,高度= 320px);
-
上面的代码为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屋!