Symfony 2.4 / FOSUserBundle - 有没有办法以编程方式挂钩登录过程?

时间:2014-05-30 20:10:18

标签: json symfony fosuserbundle

我有一个工作项目,它使用FOSUserBundle处理用户相关的所有事情,包括登录系统。现在,我正在构建一个API,并希望用户能够通过HTTPS通过JSON发送他们的凭据来登录系统。我也希望能够使用_remember_me Cookie。

因此,我需要能够将这些JSON解码的凭据或_remember_me cookie发送到FOSUserBundle登录机制,但我不太清楚如何做到这一点。任何有关正确方向的建议或推动都将不胜感激。

1 个答案:

答案 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