我有一个工作项目,它使用FOSUserBundle处理用户相关的所有事情,包括登录系统。现在,我正在构建一个API,并希望用户能够通过HTTPS通过JSON发送他们的凭据来登录系统。我也希望能够使用_remember_me
Cookie。
因此,我需要能够将这些JSON解码的凭据或_remember_me
cookie发送到FOSUserBundle登录机制,但我不太清楚如何做到这一点。任何有关正确方向的建议或推动都将不胜感激。
答案 0 :(得分:1)
您需要创建自定义身份验证提供程序和安全工厂。这是一项非常高级的任务,但这里有一个可以帮助您的教程。 http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html
创建工厂类(实施SecurityFactoryInterface
)时,请确保将getPosition()
分配给http
。几个认证工厂将根据其位置严格按顺序调用,因此请记住remember_me
位置 - 负责记住我的功能(前提是它已在security.yml
文件中启用) - 将比您即将实施的http
身份验证更早开始。
除了上面的教程之外,您还可以查看并研究以下内置身份验证工厂,它可以提供有用的信息:
vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php