django-social-auth
實現了一個管道(這似乎是一個新功能,因爲它在我試用時並不存在),允許您在身份驗證過程的某些步驟中插入自定義函數。請在此處查看the docs here和example pipline function。
所以,你可以寫一個函數:
SOCIAL_AUTH_PIPELINE = (
'social_auth.backends.pipeline.social.social_auth_user',
'social_auth.backends.pipeline.associate.associate_by_email',
'social_auth.backends.pipeline.user.get_username',
'app.pipeline.custom_create_user',
'social_auth.backends.pipeline.social.associate_user',
'social_auth.backends.pipeline.social.load_extra_data',
'social_auth.backends.pipeline.user.update_user_details'
)
在您custom_create_user
功能包默認create_user
並創建用戶名根據Ø自己的需要:
from social_auth.backends.pipeline.user import create_user
def custom_create_user(request, *args, **kwargs):
user = *kwargs.get('user', None)
# Do something with username
return create_user(request, args, kwargs)
首先,你需要嘗試接受更多在可能的情況下回答您的問題 - 人們將更有可能幫助您。關心這個問題;你是否說你想要操縱用戶名等__after__他們已經與facebook授權,但__before__他們的用戶名被保存到數據庫? – 2012-02-19 20:14:15
準確!我沒有意識到接受答案的事情。我肯定會接受更多的答案,我認爲我應該只接受1個答案或不接受答案。謝謝。 – freethrow 2012-02-19 20:31:17
那麼,每個問題只能接受一個答案,而且只有在實際情況正確的情況下才應該這樣做,但如果找出問題,您也可以接受自己的答案。 – 2012-02-19 21:11:57