我一直在使用 django-social-auth (https://github.com/omab/django-social-auth),并取得了一些成功——从 Twitter 和 Facebook 登录已经很容易设置。但是,当我从一些 OpenID 提供商登录时,我会遇到用户名的空变量,而 social-auth 应用程序允许这样做(尽管我设置了 SOCIAL_AUTH_DEFAULT_USERNAME)。
虽然如果 SOCIAL_AUTH_DEFAULT_USERNAME 工作正常,这可能是一个临时解决方案,但理想情况下,我宁愿它是从 openID 提供程序自动设置的。基本上,我有两种可能的解决方案:
1) 制作一个自定义方法来提取从 openID 提供程序发送的一些额外数据,以从中设置用户名。2) 强制用户在首次登录时设置用户名。
虽然(2)不太优雅,但它确保了每次都插入了用户名,并且还避免了对可能不适合用户名格式的自动信息进行一些后处理的需要。
我的问题相当于,我该如何实施以上任何一项!不需要完整的答案,但非常感谢指向方法的指针!
另一种方法是玩 django-socialregistration 看看这是否让生活更轻松!
Ĵ