Я хочу избежать хранения личной информации в базе данных (без фамилий, без электронной почты). Это мой подход к его достижению:
- Делегируйте аутентификацию службе аутентификации социальных сетей (благодаря 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 }
settings.py
SOCIAL_AUTH_PIPELINE = (
'myapp.mypipeline.social_details',
'social.pipeline.social_auth.social_uid',
...
Вопрос:
Правильный ли это способ достижения моей цели?