我正在開發一個Drupal 6模塊來提供基於OAuth的用戶認證和註冊。我已按照http://oauth.net/core/1.0a/#anchor9上的說明使用OAuth模塊進行身份驗證。下一步是使用服務提供商的自定義API使用驗證後提供的信息創建用戶帳戶。在Drupal中進行外部認證後透明用戶註冊
根據http://drupal.org/node/497612#comment-3047302,我不應該使用user_external_login_register()
,但請參閱OpenID模塊瞭解如何正確登錄外部用戶。
研究的OpenID模塊後,這裏是我打算做:
- 嘗試加載現有用戶的使用
user_external_load()
定製API結果authname的構建。 - 如果用戶存在,則使用
user_external_login()
登錄用戶。 - 如果沒有,假裝登記表已經提交(如
openid_authentication()
一樣)來創建一個新的用戶帳戶。如果需要任何附加信息以便用戶註冊,則將其重定向到預填表單。
這是正確的做法嗎?除了OpenID之外,還有其他模塊值得關注嗎?
謝謝你的提示。但是drupal_distributed_validate使用user_external_login_register(),根據http://drupal.org/node/497612#comment-3047302不應該使用它。我想這是因爲它不強制執行額外的註冊字段,並重新創建(本地用戶,如果現有本地用戶的名稱與外部用戶的名稱不匹配) – 2010-06-22 11:42:09
這是在d7中的強化。但D6,儘管不完美。 user_external_login_register()仍然是要走的路。或者,你可以自己重寫這樣的功能,並在那裏強化它。 – berkes 2010-06-22 16:28:37