個人情報をデータベースに保存することは避けたい (苗字なし、電子メールなし)。これはそれを達成するための私のアプローチです:
- 認証をソーシャル ネットワーク認証サービスに委任します ( 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',
...
質問:
これは私の目的を達成する正しい方法ですか?