我想避免将个人信息存储在数据库中(没有姓氏,没有电子邮件)。这是我实现它的方法:
- 将身份验证委托给社交网络身份验证服务(感谢python-social-auth)
- 更改 python-social-auth 管道以匿名化个人信息。
然后我用social_details
这个替换了管道上的步骤:
#myapp/mypipeline.py
def social_details(strategy, response, *args, **kwargs):
import md5
details = strategy.backend.get_user_details(response)
email = details['email']
fakemail = unicode( md5.new(email).hexdigest() )
new_details = {
'username': fakemail[:5],
'email': fakemail + '@noreply.com',
'fullname': fakemail[:5],
'first_name': details['first_name'],
'last_name': '' }
return {'details': new_details }
设置.py
SOCIAL_AUTH_PIPELINE = (
'myapp.mypipeline.social_details',
'social.pipeline.social_auth.social_uid',
...
问题:
这是实现我的目的的正确方法吗?