我在一个网站上工作,通过django socialauth支持Facebook协会。这个库工作得很好,除非有时我需要处理“Account already in use”ValueError。在
从django socialauth的documentation(搜索“exception”)中可以看出,存在SOCIAL\u AUTH_PROCESS_EXCEPTIONS设置来指定异常处理程序。所以我创建了一个虚拟函数:
SOCIAL_AUTH_PROCESS_EXCEPTIONS = 'myapp.utility.process_exceptions'
但是当我启动ValueError时,处理程序永远不会被调用。以前有没有人使用过这个关键的社交认证过程例外?在
非常感谢!在
我认为您最好的选择是修改身份验证管道并创建您自己的这个函数版本,它位于social_auth/backend/pipelines中/助理.py公司名称:
def associate_通过电子邮件发送(详细信息,*args,**kwargs): “”“返回与详细信息中返回的电子邮件地址相同的用户条目。”“” 电子邮件=详细信息。获取(“电子邮件”)
如果您替换这一行:
引发AuthException(kwargs['backend'],'Not unique email address.')
对于pass语句,如果数据库中有重复的电子邮件(意味着它不能关联任何特定的帐户),它将不会尝试通过电子邮件关联,而是传递到管道中的下一个项目。最终,这将导致创建一个新帐户。在
相关问题 更多 >
编程相关推荐