单击登录表单中的Facebook登录按钮可正确显示出fb登录弹出窗口,但输入凭据后弹出窗口关闭,没有任何反应。调试AllAuth:尽管连接成功,社交帐户仍未登录用户
再次点击该按钮无需重新加载页面确认FB帐户连接为浏览器控制台打印:
的FB.login()时,用户已连接调用。
但是没有新的条目出现在用户数据库中,用户没有重定向,也没有登录。所以问题似乎是AllAuth如何处理事情。尽管如此,后端的任何地方都没有调试信息,这使得有点难以弄清楚。
这里的allauth设置:
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
DEFAULT_FROM_EMAIL = "[removed for stackoverflow]"
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
SOCIALACCOUNT_EMAIL_VERIFICATION = "mandatory"
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_PROVIDERS = \
{'facebook':
{'METHOD': 'oauth2',
'SCOPE': ['email','public_profile', 'user_friends'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
'verified',
'locale',
'timezone',
'link',
'updated_time'],
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': False,
'VERSION': 'v2.4'}}
,这是在登录页面上的JS:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '[removed for stackoverflow]',
xfbml : true,
version : 'v2.10'
});
FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
我想没有必要添加任何类型的脚本在你的登录页面。并且我还可以看到代码中缺少一些设置,请检查我的答案,我已经发布了将facebook登录集成到您的网络应用程序所需的全部设置。 – Satendra