我要求更改电子邮件和密码的标准Django登录,以允许任何用户无需密码登录,但仅限于他们在某个域上...例如somebody@example.com ...允许用户进入正确的域名。
有什么建议吗?
答案 0 :(得分:5)
假设“在正确的域名上”意味着他们拥有相关域的电子邮件地址,您可以写一个custom authentication backend
另外:
最后:
或者,最后,最后:
答案 1 :(得分:1)
如果您的用户使用电子邮件somebody@example.com
打开了openid,那么您可以使用OpenId解决方案(例如Django-openid;还有其他人)来验证他的身份并允许他访问。
如果这不太可能,那么您需要找到一种自定义方式来确保用户是他声称的用户。
答案 2 :(得分:0)
不知怎的这样:
if cleaned_data['email'].endswith('@example.com'):
user = None
try:
user = User.objects.get(email = cleaned_data['email'])
except:
pass
if user:
login(request, user)
您的概念允许每个人在不使用密码的情况下知道或猜测其中一个受影响的电子邮件地址!
祝你好运!