簡體   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