我已经设置了Python Social Auth,如下所示,
SOCIAL_AUTH_STRATEGY = 'social.strategies.django_strategy.DjangoStrategy'
SOCIAL_AUTH_STORAGE = 'social.apps.django_app.default.models.DjangoStorage'
SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = True
SOCIAL_AUTH_PROTECTED_USER_FIELDS = ['email', 'first_name', 'last_name']
我的管道如下
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.social_auth.associate_by_email',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details'
)
根据设置,如果新用户使用社交帐户登录,则应使用first_name和last_name创建用户详细信息。我得到的是一个空白first_name和last_name的用户。如果我删除 SOCIAL_AUTH_PROTECTED_USER_FIELDS ,我会在创建新用户时获取first_name和last_name。
那么在创建新用户时如何获取first_name和last_name,并且在下次登录时永远不会更新这些字段?