【发布时间】:2015-07-23 15:17:11
【问题描述】:
AttributeError at /complete/google-oauth2/
'NoneType' object has no attribute 'provider'
这发生在https://github.com/omab/python-social-auth/blob/master/social/actions.py#L69这一行的新用户或已经注册的用户身上,这是一个新问题。它在我使用自定义管道时出现,但它以前可以工作,现在恢复到最基本的 python-social-auth 设置不起作用。
即使使用重新加载的数据库和刷新的同步数据库。 (这是 Django 1.4.20,我们正在升级的旧项目)。
问题很清楚,无论在默认管道中的什么地方,要在 user 上设置的 social-user 都不起作用,但我对 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
这是代码阻塞的数据,这显然是因为管道的某些先前部分没有将“social_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'
当我导航到主页时,我已使用 gmail 帐户正常登录。 (尽管某些在 create_user 之后发生的 post_save 函数不会触发,但我认为这是因为它在管道中间崩溃了)。然后,当我注销并重新登录时,它再次在同一页面上崩溃。
【问题讨论】:
标签: python django python-social-auth