2015-01-31 1 views
1

내 문제는 PSA가 페이스 북을 통해 가입하는 동안 사용자의 이메일 주소를 사용 중지하여 사이트 전체에 문제가 발생한다는 것입니다. 가입하는 동안 데이터를 요구할 수있는 방법이 있습니까?python-social-auth에 이메일 필드가 필요합니다.

나는 간단한

if no email create a fake one generated like [email protected] 

를 사용하여 우회 할 수 있지만, 여전히 그 못생긴 해결 방법입니다. 당신이 시작 얻을 수있는 Python Social Auth docs

에서

답변

1

Checkot ... 사용자/파이프 라인/create_user.py에서

SOCIAL_AUTH_PIPELINE = (
    ... 
    'users.social_stuff.create_user', 
    ... 
) 

다음 settings.py에서

def create_user(backend, details, response, user=None, *args, **kwargs): 
    email = details.get('email')[:255] 

    EMAIL_RE = re.compile(r'[^@][email protected][^@]+\.[^@]+') 

    if not EMAIL_RE.match(email): 
     # return to a separate page and display an error 
     response = HttpResponseRedirect('/some-url/') 
     messages.error(request, "An email address is required") 
     return response 
    else: 
     # logic to create a user 

또한 이메일이 정말로 필요한지 생각하고 싶습니다. 그하지, 단지

email = models.EmailField(blank=True) 

를 설정하고 사용자를 저장하고 묻는다면 정중 나중에 형태로

을 채우기 위해