python-social-auth и олицетворение пользователя django

Я хочу избежать хранения личной информации в базе данных (без фамилий, без электронной почты). Это мой подход к его достижению:

  1. Делегируйте аутентификацию службе аутентификации социальных сетей (благодаря python-social-auth)
  2. Измените конвейер 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',
    ...

Вопрос:

Правильный ли это способ достижения моей цели?


person dani herrera    schedule 26.11.2013    source источник
comment
Подход хорош и соответствует назначению пайплайна в приложении.   -  person omab    schedule 02.12.2013
comment
@omab, спасибо за ваш ответ, а также за ваш замечательный python-social-auth программное обеспечение. Хотите оставить комментарий в качестве ответа, чтобы проверить его как решение?   -  person dani herrera    schedule 02.12.2013


Ответы (1)


Выглядит неплохо.

Я делаю что-то похожее на анонимизацию IP-адресов (их хеширование).

person Jay    schedule 26.11.2013
comment
Выглядит неплохо? Это означает, что вы знаете внутренности социальной аутентификации и согласны с таким подходом? - person dani herrera; 26.11.2013