我在Symfony工作几年后正在编写我的第一个Symfony2应用程序,并且无法转换我们的用户管理代码。似乎为了适应Symfony2的身份验证模型,我必须提供用户详细信息,包括其(加密)密码。我们通过Web服务进行身份验证,该服务使用用户名和密码并以确认和用户级别(用户,管理员等)进行响应,但它永远不会将真实密码发回给我们。
我想要做的是接受表单中的登录详细信息,确认它们是有效的,然后根据webservice的响应设置用户的角色。我从哪里开始?
答案 0 :(得分:2)
您需要使用自定义身份验证提供程序对您的Web服务进行身份验证。在此博客post
中已经非常清楚地解释了这一点答案 1 :(得分:2)
您可以创建一个用户提供商及其loadUserByName
,您可以调用该网络服务。如果成功返回新的UserInterface
对象,其中包含空盐字符串形式的密码以及服务返回的角色。同时在UserInterface
中将security.yml
的编码器设置为明文。然后在防火墙的form_login
身份验证提供程序中设置新创建的用户提供程序。