1

我已经在我的 django 应用程序中成功实现了 python social auth,但是我注意到 twitter 没有提供电子邮件地址供我保存。有没有办法扩展社交身份验证管道,如果没有提供,我可以要求新用户的电子邮件地址?

4

1 回答 1

3

做到这一点的方法是通过使用检查是否提供电子邮件并要求不提供电子邮件的功能来扩展默认管道。在https://github.com/omab/python-social-auth/blob/master/examples/django_example检查示例应用程序,它使用此管道https://github.com/omab/python-social-auth /blob/master/examples/django_example/example/app/pipeline.py

基本上流程是:

  1. 用户使用推特注册
  2. 该管道检查用户是否是新用户以及身份验证提供者是否返回了电子邮件
  3. 如果没有电子邮件,则将用户重定向到表单,否则继续(表单 POST 到/complete/twitter,这样身份验证过程将在停止的地方继续)
  4. 管道功能再次运行,但在请求 POST 数据中检测到一封电子邮件
  5. 管道将电子邮件存储在details其中用于稍后创建用户
于 2014-09-22T20:28:00.243 回答