我的问题是,PSA会允许用户在通过Facebook注册时禁用他们的电子邮件地址,这会在整个网站范围内造成问题。注册时有没有办法要求这些数据?
我可以通过使用简单的
来绕过它if no email create a fake one generated like username@no-given-email.com
但仍然是一个丑陋的解决方法。
答案 0 :(得分:1)
让你开始......
你在settings.py中的
SOCIAL_AUTH_PIPELINE = (
...
'users.social_stuff.create_user',
...
)
然后在users / pipeline / create_user.py
中def create_user(backend, details, response, user=None, *args, **kwargs):
email = details.get('email')[:255]
EMAIL_RE = re.compile(r'[^@]+@[^@]+\.[^@]+')
if not EMAIL_RE.match(email):
# return to a separate page and display an error
response = HttpResponseRedirect('/some-url/')
messages.error(request, "An email address is required")
return response
else:
# logic to create a user
您也想知道是否真的需要电子邮件。如果没有,只需设置
email = models.EmailField(blank=True)
并保存用户并礼貌地请他们稍后填写表格