首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django -与实现分离的身份验证后端代码

Django -与实现分离的身份验证后端代码
EN

Stack Overflow用户
提问于 2013-09-20 17:27:34
回答 1查看 99关注 0票数 1

将身份验证后端逻辑与本质上依赖于它的代码分离的最佳方法是什么?

这里有一个常见的问题: django_auth_ldap不预先填充users表,而是根据LDAP进行身份验证,并在用户首次登录时将用户添加到表中。

然而,假设我们正在编写一个应用程序,它涉及到在项目中添加成员。用户可能希望添加其他存在于LDAP中但以前没有登录的用户,因此在本例中,您几乎需要输入用户名并查询LDAP和数据库,以查看该用户是否存在。尽管如此,如果我们编写的应用程序是可重用的,我们希望“按用户名查找”子程序是可配置的。

在工作中,我们有两种不同的解决方案,这两种解决方案都很好,但它们是一种奇怪的解决方案。

  • 这样您就可以在get_user_by_username中编写settings.py函数,它可以执行任何您想要的查找
  • 给出一个"appname.modelname“路径到您创建的auth.User的代理模型,该模型被期望/强制拥有一个与get_user_by_username相同的类方法

我认为第一个是有点干净,因为它没有引入新的类型,但它仍然是一个奇怪的东西在settings.py。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 19:54:07

我建议编写一个封装预期功能的抽象基类。这有点像C#和Java等编程语言中的接口。然后有一个django设置,指定要用于get_user_by_username提供程序的类。

这意味着,未来的开发人员可以将他们的get_user_by_username实现放在他们认为合适的任何地方,只要它是在从抽象基类派生的类中实现,并在设置中指向它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18922546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档