繁体   English   中英

如何从Drupal对Django进行身份验证?

[英]How to authenticate against Django from Drupal?

我有一个中等大小的Drupal 6站点运行(每月大约500万页面浏览量和超过30K注册用户),我需要集成OSQA,一个Django应用程序。 我已经在Drupal数据库中拥有许多用户,角色和权限,我想指出Django应用程序使用我在Drupal中已有的注册和登录页面来为我的用户提供入口处的单点。

我想保留Django身份验证部分,因为我认为OSQA可以更好地工作。 我还有性能原因,Drupal站点已经获得了大量流量,并且拥有一个非常繁忙的数据库,我认为为Django使用单独的数据库会有所帮助。

经过一些研究后,我想我可以让Drupal注册并登录页面在后台调用Django来注册或登录Django应用程序。 我计划在Django中编写一些视图,一个用于注册,另一个用于登录,Drupal会将用户名和密码发布到这些视图。 当然我需要在Django中为这些视图禁用CSRF,并且可能还发布一些秘密密钥,只有我的Drupal和Django应用程序才知道要避免外部站点试图使用这种“不受保护的”Django视图。

我知道我的Django应用程序在某些时候可能需要Drupal的一些用户数据,而我正在计划使用Drupal服务模块。

这会是一个好方法吗? 有什么建议么?

非常感谢!

OSQA是否有任何插件可以公开Drupal可以与之通信的身份验证服务? (OpenID或类似)。

或者,查看Drupal的ldap_integration模块,以获取使用外部身份验证服务的模块示例。 考虑您需要为每次登录创建Drupal用户帐户。

最后,为什么不用Drupal构建OSQA功能的基本部分呢? 似乎可以使用Taxonomy,Vote Up和Userpoints / User Badges轻松复制关键功能......可能比共享身份验证更容易,特别是在大型站点上。

我曾经创建了一个非常简单的[sql_authentication] [1]模块,您可以简单地为更新版本的Drupal重新创建。

这个想法很简单:为Drupal提供另一种身份验证回调。 在该回调函数中,只需检查Django数据库,如果您认为用户是正确的,则返回TRUE。

您可以看一下openid.module(在核心中)如何扩展用户身份验证的简单示例。

如果你可以发布到Django表单,你可以使用drupal_http_request来处理对Django的调用。 在使用ldap_integration模块一段时间之后,我使用了一个自定义身份验证模块,该模块使用drupal_http_request调用基于Java的REST身份验证API。 如果您对代码感兴趣,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM