使用自定义用户模型登录Facebook

时间:2020-07-30 09:29:48

标签: django django-models python-social-auth django-custom-user

我正在尝试使用Social-Auth创建一个新用户,而我的自定义用户模型需要一个电话号码,但Facebook不允许该电话号码

所以我得到这个错误

TypeError at /social-auth/complete/facebook/
create_user() missing 1 required positional argument: 'phone'

settings.py

SOCIAL_AUTH_FACEBOOK_KEY = 'XXXXXXXXXX'       
SOCIAL_AUTH_FACEBOOK_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXX'  
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] # add this
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {       
  'fields': 'id, name, email, picture.type(large), link'
}
SOCIAL_AUTH_FACEBOOK_EXTRA_DATA = [                 
    ('name', 'name'),
    ('email', 'email'),
    ('picture', 'picture'),
    ('link', 'profile_url'),
]

我如何传递默认参数以避免此错误或解决此问题的任何解决方案

1 个答案:

答案 0 :(得分:0)

我对“用户名”有同样的问题,问题是最有可能您将所需的电话号码作为用户模型中的一个字段。 并且在您的SOCIAL_AUTH_PIPELINE管道中

“ social_core.pipeline.user.create_user”

如果您的Db中找不到用户,它将尝试创建一个用户。所以我认为您有2个选择。 1-不需要您的型号中的电话号码。 2-删除此管道,并使用自己的实现创建自己的管道。