我想将python-social-auth用于我的网络服务,但我不能100%确定它是如何工作的:
当我使用我的github帐户注册时(假设我的github帐户名为joe),然后python-social-auth创建一个名为joe的新用户,而user.username
也是joe。
但是,如果其他用户想要注册,即使用谷歌帐户,但该用户拥有谷歌用户名joe,会发生什么。
然后我的网络服务会发生什么?将python-social-auth抱怨并说已经有一个名为joe的用户,或者它是否能够区分github用户和谷歌用户?
并且user.username
对两者都是乔吗?!
答案 0 :(得分:4)
python-social-auth
将为每个用户创建一个唯一的用户名,默认的解析方法是将哈希值附加到用户名的末尾,因此它将变为joed41d8cd98f00...
,方法需要照顾的是https://github.com/omab/python-social-auth/blob/master/social/pipeline/user.py#L9-L53。
您可以通过在管道中替换该方法来覆盖默认行为(或者在将该方法应用于生成的用户名之后添加另一个方法)。