Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 下一个查询参数不为';t与django allauth合作登录facebook_Python_Django_Django Allauth - Fatal编程技术网

Python 下一个查询参数不为';t与django allauth合作登录facebook

Python 下一个查询参数不为';t与django allauth合作登录facebook,python,django,django-allauth,Python,Django,Django Allauth,我已经使用Django all auth在我的应用程序中实现了用户帐户管理。我已经使用用户名和密码以及facebook connect启用了登录 问题是这样的: 1) 用户访问页面并单击登录 2) 他喜欢上了 3) 当用户使用用户名和密码登录时,用户将重定向回。但如果用户登录facebook,他就会进入主页 我怎样才能通过Facebook登录获得所需的行为?您是如何生成Facebook登录链接的?很可能您没有在那里指示下一个参数。下表给出了以下示例: <a href="{% provide

我已经使用Django all auth在我的应用程序中实现了用户帐户管理。我已经使用用户名和密码以及facebook connect启用了登录

问题是这样的:

1) 用户访问页面并单击登录

2) 他喜欢上了

3) 当用户使用用户名和密码登录时,用户将重定向回。但如果用户登录facebook,他就会进入主页


我怎样才能通过Facebook登录获得所需的行为?

您是如何生成Facebook登录链接的?很可能您没有在那里指示下一个参数。下表给出了以下示例:

<a href="{% provider_login_url "openid" openid="..." next="/success/url/" %}">Google</a>


要获得正确的next参数,您可以访问
request.get.next

您需要覆盖django allauth的
get\u login\u redirect\u url
方法

为此,将
DefaultAccountAdapter
类继承为

from allauth.account.adapter import DefaultAccountAdapter

class MyAccountAdapter(DefaultAccountAdapter):
    def get_login_redirect_url(self, request):
        # get the next parameter from request object and return the url 
并在settings.py上进行更改

ADAPTER = "APPNAME.FILENAME.MyAccountAdapter"
ACCOUNT_ADAPTER = "APPNAME.FILENAME.MyAccountAdapter"

这应该管用

该视图由Django all auth本身定义。我只是在更改模板。我一直在寻找一个比覆盖视图本身更好的解决方案……好的,我们也可以从模板访问请求参数。我不知道。我试试看,这样不行。即使我指定next=“/some/url”。。它将重定向到默认的url。嗯,我不确定。而且似乎没有必要像这样显式指定
下一个
url-我浏览了源代码,如果您不指定它,它看起来会自动从查询参数中提取。我刚刚在自己的项目中用Facebook OAuth2流测试了这一点,重定向工作正常。您使用的是OAuth2还是Javascript登录?