使用 Python-social-auth 未在管道中设置社交用户

bun*_*hes 5 python django python-social-auth

AttributeError at /complete/google-oauth2/

'NoneType' object has no attribute 'provider'
Run Code Online (Sandbox Code Playgroud)

新用户或已经注册的用户会发生这种情况https://github.com/omab/python-social-auth/blob/master/social/actions.py#L69,这是一个新问题。当我使用自定义管道时,它出现了,但它以前可以工作,现在恢复到最基本的 python-social-auth 设置不起作用。

即使重新加载数据库和刷新同步数据库。(这是 Django 1.4.20,我们正在升级的一个旧项目)。

问题很明显,在默认管道中的任何地方,社交用户都不能正常工作,但我对 python-social-auth 代码的理解不够好,我在这里兜圈子。任何指示或帮助将不胜感激。

出现在我的堆栈跟踪中的 500 以防有任何帮助。

[23/Jul/2015 12:00:32] "GET /complete/google-oauth2/?state=MRFnOQG6Cv5Cmb1xqdcp53C33dDrFf7C&code=4/2bgjgYgxFtqB2c10BInigkigGfy4ZNOSYBqyHBUdLGo&authuser=0&prompt=consent&session_state=4c6c24bdd3100a506c4744be8ab9b793ed6399d5..a5f9 HTTP/1.1" 500 148571
Run Code Online (Sandbox Code Playgroud)

这是代码阻塞的数据,这显然是因为管道的某些先前部分没有将“social_user”放入 user. 但我不知道哪里会失败,对此更熟悉的人是否对默认管道可能失败的地方有任何建议?

partial None
is_authenticated    False
args    ()
is_new  False
redirect_value  ''
user    <User: 4o5bb5o5>
social_user None
kwargs  {}
login   <function _do_login at 0xaef3de9c>
backend <social.backends.google.GoogleOAuth2 object at 0x9e68fac>
data    <QueryDict: {u'state': [u'dwMOHkBxsVgvj4mwL54LXqihzJVYMWTV'], u'code': [u'4/fjOVlVyAK5mS_mcv7uHVWQsFycpjlbB_YOy4F7omIIY'], u'prompt': [u'none'], u'session_state': [u'ab65081ee8e4a3720d5963deced4cabc7b259a85..8f10'], u'authuser': [u'0']}>
redirect_name   
'next'
Run Code Online (Sandbox Code Playgroud)

当我导航到主页时,我可以使用 gmail 帐户正常登录。(虽然一些在 create_user 之后发生的 post_save 函数不会触发,但我认为这是因为它在管道中间崩溃了)。然后,当我注销并再次登录时,它在同一页面上再次崩溃。

小智 0

我通过注释 actions.py 中导致问题的第 68 和 69 行使其工作。我知道这不是一个解决方案,但如果您需要让它工作,这可能是某种解决方法