python-social-auth中的用户名

时间:2014-04-23 12:04:48

标签: python openid django-socialauth

我想将python-social-auth用于我的网络服务,但我不能100%确定它是如何工作的:

当我使用我的github帐户注册时(假设我的github帐户名为joe),然后python-social-auth创建一个名为joe的新用户,而user.username也是joe。 但是,如果其他用户想要注册,即使用谷歌帐户,但该用户拥有谷歌用户名joe,会发生什么。

然后我的网络服务会发生什么?将python-social-auth抱怨并说已经有一个名为joe的用户,或者它是否能够区分github用户和谷歌用户?

并且user.username对两者都是乔吗?!

1 个答案:

答案 0 :(得分:4)

如果发生冲突,

python-social-auth将为每个用户创建一个唯一的用户名,默认的解析方法是将哈希值附加到用户名的末尾,因此它将变为joed41d8cd98f00...,方法需要照顾的是https://github.com/omab/python-social-auth/blob/master/social/pipeline/user.py#L9-L53

您可以通过在管道中替换该方法来覆盖默认行为(或者在将该方法应用于生成的用户名之后添加另一个方法)。