在Symfony數年後我正在編寫我的第一個Symfony2應用程序,並且無法轉換我們的用戶管理代碼。似乎爲了適應Symfony2的身份驗證模型,我必須提供用戶詳細信息,包括他們的(加密的)密碼。我們通過一個web服務進行身份驗證,該服務採用用戶名和密碼,並以確認和用戶級別(用戶,管理員等)作出響應,但它從不將真實密碼發回給我們。無法讀取密碼的Symfony2身份驗證
我想要做的是接受表單中的登錄細節,確認它們是有效的,然後根據webservice的響應設置用戶的角色。我從哪說起呢?
在Symfony數年後我正在編寫我的第一個Symfony2應用程序,並且無法轉換我們的用戶管理代碼。似乎爲了適應Symfony2的身份驗證模型,我必須提供用戶詳細信息,包括他們的(加密的)密碼。我們通過一個web服務進行身份驗證,該服務採用用戶名和密碼,並以確認和用戶級別(用戶,管理員等)作出響應,但它從不將真實密碼發回給我們。無法讀取密碼的Symfony2身份驗證
我想要做的是接受表單中的登錄細節,確認它們是有效的,然後根據webservice的響應設置用戶的角色。我從哪說起呢?
您可以創建一個用戶提供商及其loadUserByName
您可以調用web服務。如果成功返回新的UserInterface
對象與表單空鹽串的密碼和服務返回的角色。在security.yml
中也將UserInterface
的編碼器設置爲明文。然後在防火牆中的form_login
auth provider中設置新創建的用戶提供者。
您在這裏假設密碼未在Web服務中加密,這不應該是有效的方案。如果密碼已加密,除非我們知道Web服務正在使用的加密機制來配置security.yml,否則此解決方案無效。 – Juampy
下面有兩個很好的答案,我正在通過symfony.com完整的官方方式與身份驗證提供者ping web服務部分路徑。 – Craig