Python 下一个查询参数不为';t与django allauth合作登录facebook
我已经使用Django all auth在我的应用程序中实现了用户帐户管理。我已经使用用户名和密码以及facebook connect启用了登录 问题是这样的: 1) 用户访问页面并单击登录 2) 他喜欢上了 3) 当用户使用用户名和密码登录时,用户将重定向回。但如果用户登录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
我怎样才能通过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登录?