2010-02-17 65 views
0

我需要允許用戶使用非標準身份驗證服務登錄到Spree。 我社區中的用戶都擁有爲我們設立的另一個3d派對服務的帳戶。該服務提供了一個接受登錄名和密碼的Web服務,如果成功則返回一個userId。 作爲管理員,我可以查詢用戶配置文件信息。使用Authlogic對遠程服務進行身份驗證

我一直在想象,當用戶嘗試登錄時,我運行他們的憑據對遠程服務,如果成功,存儲用戶名,然後檢索配置文件信息,並將其推入數據庫(名稱,地址等等......)。這是正確的方法嗎?我怎麼會這樣做呢?

回答

0

儘管我沒有使用過熱門,但如果涉及到Authlogic(根據您的主題行建議),那麼您可以編寫自己的方法來驗證用戶,而不是依靠Authlogic來驗證本地數據庫。

在你UserSession型號:

class UserSession < Authlogic::Session::Base 
    verify_password_method :my_custom_auth_method 
    ... 

然後在您的用戶模式:

def my_custom_auth_method(password_plaintext) 
    # user 'password_plaintext' and 'self.username' to validate 
    # against remote service returning true or false 
end 

如果你想使用Authlogic的驗證除了你自己的方法,你可以從內部調用valid_password?(password_plaintext)您自定義verify_password_method。

不知道這是你的意思,但希望它有幫助!

相關問題