将身份验证后端逻辑与本质上依赖于它的代码分离的最佳方法是什么?
这里有一个常见的问题: django_auth_ldap不预先填充users表,而是根据LDAP进行身份验证,并在用户首次登录时将用户添加到表中。
然而,假设我们正在编写一个应用程序,它涉及到在项目中添加成员。用户可能希望添加其他存在于LDAP中但以前没有登录的用户,因此在本例中,您几乎需要输入用户名并查询LDAP和数据库,以查看该用户是否存在。尽管如此,如果我们编写的应用程序是可重用的,我们希望“按用户名查找”子程序是可配置的。
在工作中,我们有两种不同的解决方案,这两种解决方案都很好,但它们是一种奇怪的解决方案。
我认为第一个是有点干净,因为它没有引入新的类型,但它仍然是一个奇怪的东西在settings.py。
发布于 2013-09-20 19:54:07
我建议编写一个封装预期功能的抽象基类。这有点像C#和Java等编程语言中的接口。然后有一个django设置,指定要用于get_user_by_username提供程序的类。
这意味着,未来的开发人员可以将他们的get_user_by_username实现放在他们认为合适的任何地方,只要它是在从抽象基类派生的类中实现,并在设置中指向它。
https://stackoverflow.com/questions/18922546
复制相似问题