为什么我的 Flask 应用程序无法使用 Python Social Auth 创建新用户?
Why my Flask application can't create new user using Python Social Auth?
我正在使用 python-social-auth
包,它有一个相当奇怪的行为,也就是说,我可以使用已经在数据库中注册的现有 gmail 帐户登录,但我无法注册新用户。
实际上,这是一个 dockerize Flask 应用程序(在 app.py
中)。如果我不使用 supervisord
,所有 Python 社交身份验证行为都可以正常工作。也就是说,我直接调用python app.py
,而不是在supervisord.conf
.
中通过supervisord
配置成运行
但是如果我使用supervisord
,新用户将无法注册。应用程序将被定向到登录页面。
注意:另一方面,我正在尝试使用 Flask-OAuth 重写社交实现。
终于找到bug了。这些是已确认 oauth 进程的自定义管道的代码修复:
def pipeline_oauth_confirmed(backend, user, response, *args, **kwargs):
user.active = True
user.confirmed_at = datetime.now()
db_session.commit()
由于应用程序需要 user.active=True
才能让用户登录,因此用户不会登录。我省略了 db_session.commit()
调用。一旦添加,它就起作用了!
我正在使用 python-social-auth
包,它有一个相当奇怪的行为,也就是说,我可以使用已经在数据库中注册的现有 gmail 帐户登录,但我无法注册新用户。
实际上,这是一个 dockerize Flask 应用程序(在 app.py
中)。如果我不使用 supervisord
,所有 Python 社交身份验证行为都可以正常工作。也就是说,我直接调用python app.py
,而不是在supervisord.conf
.
supervisord
配置成运行
但是如果我使用supervisord
,新用户将无法注册。应用程序将被定向到登录页面。
注意:另一方面,我正在尝试使用 Flask-OAuth 重写社交实现。
终于找到bug了。这些是已确认 oauth 进程的自定义管道的代码修复:
def pipeline_oauth_confirmed(backend, user, response, *args, **kwargs):
user.active = True
user.confirmed_at = datetime.now()
db_session.commit()
由于应用程序需要 user.active=True
才能让用户登录,因此用户不会登录。我省略了 db_session.commit()
调用。一旦添加,它就起作用了!