我正在开发一个将 LDAP 身份验证集成到现有 Django 应用程序中的项目。使用这个站点和其他站点,我终于能够使用 django_auth_ldap 后端正确配置所有内容。包含:
AUTH_LDAP_REQUIRE_GROUP = "CN=myGroup,CN=groups [...] "
因此,只有“myGroup”组中的用户才能登录。
现在在 settings.py 中的所有内容都已正确配置,在 user_login 视图中只有:
...
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
return redirect('index')
else:
message = "Your account is disabled."
else:
message = "Invalid username or password supplied."
...
现在最后一步必须通知用户登录失败的原因。现在,失败消息将始终是:“提供的用户名或密码无效。” 这应该是:
- 错误的用户名/密码
- 不在正确的组中
就像是:
if user:
...
else:
if (LDAP auth failed reason == user does not satisfy AUTH_LDAP_REQUIRE_GROUP):
message = "You are not in the right user group."
else:
message = "Invalid username or password supplied."
...
在我的 user_login 视图中,我怎么知道 LDAP 身份验证失败的原因?
PS:在 django_auth_ldap 日志中,我确实看到“用户名的调试验证失败:用户不满足 AUTH_LDAP_REQUIRE_GROUP”
但是如何在 user_login 视图中知道这一点?