|
|
1
2
我通过编写自己的身份验证后端并将其放入authenticate()方法来完成类似的工作。代码是公开的 here . 我还包括一个可插入的“映射器”系统来完成大部分工作,而不仅仅是验证用户身份(例如,从LDAP获取全名,根据我们的认证服务提供的“关联”自动创建组,并将某些用户和关联自动映射到人员/超级用户角色)。 基本上,身份验证方法如下:
所以我非常同意你的观点,认证应该只是一个“是/否”的事情,其他事情也应该发生在其他地方,但是我认为,以Django建立事物的方式,阻力最小的途径就是把它与认证放在一起。我确实建议让您自己的身份验证代码将这些东西委托给插件,尽管这是您可以控制的。 不过,我只在第一次登录时获取LDAP数据(添加auth_用户行时)。之后,只要他们登录,它就使用本地已有的。这意味着,如果他们的LDAP信息发生变化,它不会自动传播到我的应用程序。为了简单起见,这是我愿意做的一个折衷。 不过,我不知道为什么您在第一次登录时会遇到问题;我采用了一种非常类似的方法,而且还没有遇到这种问题。可能是因为我的应用程序上的登录过程总是在验证后立即将它们重定向到另一个页面,所以虚拟请求。用户从来没有接触过? |
|
|
2
1
这将是我自己问题的两部分答案。
希望能帮助别人。 |
|
|
Patrick Bond · 如何将模型中的函数结果添加到列表中? 1 年前 |
|
|
bur · 每次从模板调用方法都会查询数据库吗? 1 年前 |
|
|
Stefan · 在子目录中设置Django 1 年前 |
|
|
vale383 · 如何在Django端点中查找user_id 1 年前 |
|
|
Kovy Jacob · Django在动态URL段中添加斜线 1 年前 |
|
|
user987 · 如何在Django中访问提交的表单请求数据 1 年前 |
|
|
user24242514 · 将嵌套查询字符串请求转换为字典 1 年前 |