django - Django Authentication Ldap 完整示例
问题描述
我部分理解了 Django Ldap 身份验证。谁能给出开发使用Django Authentication Ldap的非常基本的应用程序的完整示例。
我浏览了这个资源并试图理解很多东西,但我仍然无法理解如何在实现中使用它。如何创建将与 LdapBackend 类一起使用的用户模型,以及如何在 authenticate() 方法等中编写许多东西。
解决方案
在这里,您可以看到一个完整的示例,非常有指导性地展示了如何创建自定义LDAPBackend
.
您需要在settings.py
(如您发布的链接中所示)中配置您的 LDAP 设置并将您的添加LDAPBackend
到AUTHENTICATION_BACKENDS
. 您可以使用提供的默认 LDAPBackend 或创建自定义的并使用它。
LDAPBackend
使用提供的默认值django-auth-ldap
:
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
LDAPBackend
如果您需要向身份验证添加额外的逻辑,请使用自定义:
AUTHENTICATION_BACKENDS = (
'accounts.backends.MyLDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
然后在accounts/backends.py
:
from django_auth_ldap.backend import LDAPBackend
class MyLDAPBackend(LDAPBackend):
""" A custom LDAP authentication backend """
def authenticate(self, username, password):
""" Overrides LDAPBackend.authenticate to add custom logic """
user = LDAPBackend().authenticate(self, username, password)
""" Add custom logic here """
return user
查看上面链接的示例以获取更多详细信息。
如果您是 LDAP 新手,我建议您在有关此主题的另一个问题中查看这个答案(以及另一个答案)。
感谢@wolf2600 指出现在而不是authenticate
您需要覆盖authenticate_ldap_user
。
推荐阅读
- vb.net - 如果在数据网格视图中满足某些条件,如何使按钮不可见和可见。?
- python - 当数据输入到另一个输入字段时,让输入字段实时更新
- vue.js - 基于复选框计数呈现按钮
- python - 使用 Python3 和 Matplotlib 创建动画
- node.js - 两次刷新同一页面时出错
- sql - 如何在 Ms Access SQL 中使用 Max 和 Min 表达式?
- reactjs - React / GraphQL:SyntaxError:数字文字后不允许直接使用标识符?
- angular - 在角度使用ngx-markdown内的管道
- javascript - 从未提交或回滚的事务会发生什么?
- laravel - 在 laravel 集体中检查单选按钮