2014-04-23 4 views
2

나는 내 웹 서비스에 대한 python-social-auth을 사용하고 싶지만 내가 어떻게 작동하는지 100 % 확실하지 않다 : 내 github의 계정으로 가입하면사용자 이름

(의 내 github의 계정이라고 가정 해 봅시다 joe) 그러면 python-social-auth가 joe라는 새 사용자를 만들고 user.username joe도 만듭니다. 하지만 다른 사용자가 가입하려는 경우 (예 : Google 계정 사용),이 사용자의 Google 사용자 이름은 joe입니다.

내 웹 서비스에서는 어떤 일이 발생합니까? python-social-auth가 불평하고 이미 joe라는 사용자가 있다고 말하거나 github 사용자와 Google 사용자를 구별 할 수 있습니까?

그리고 user.username은 둘 다 조가 될 것입니까?!

답변

4

python-social-auth은 충돌이 발생할 경우 각 사용자별로 고유 한 사용자 이름을 생성합니다. 기본 해결 방법은 사용자 이름 끝에 해시를 추가하는 것이므로 joed41d8cd98f00...이됩니다. 처리하는 방법은 여기에서 있습니다. https://github.com/omab/python-social-auth/blob/master/social/pipeline/user.py#L9-L53.

파이프 라인에서 해당 메서드를 바꾸거나 (생성 된 사용자 이름에 일부 변환을 적용한 다음에 다른 개체를 추가하여) 기본 동작을 재정의 할 수 있습니다.

관련 문제