Symfony多公司应用程序

Symfony多公司应用程序,symfony,Symfony,我需要在用户身份验证后设置几个参数 我们有一个带有oauth2客户端的db。 当其中一个获得访问令牌并试图访问受保护的API时,我需要识别客户端(这很容易,因为访问令牌绑定到特定的客户端),并定义几个应用程序参数(实际上我需要加载特定的文件parameters.yml取决于客户端) 我的问题是: 当用户通过身份验证时,如何连接到事件 如何加载特定的parameters.yml并在用户验证后使其相关 谢谢大家! 当用户成功通过身份验证时,您可以编写侦听器来侦听SecurityAuthenticat

我需要在用户身份验证后设置几个参数

我们有一个带有oauth2客户端的db。 当其中一个获得访问令牌并试图访问受保护的API时,我需要识别客户端(这很容易,因为访问令牌绑定到特定的客户端),并定义几个应用程序参数(实际上我需要加载特定的文件parameters.yml取决于客户端)

我的问题是:

  • 当用户通过身份验证时,如何连接到事件
  • 如何加载特定的parameters.yml并在用户验证后使其相关 谢谢大家!

  • 当用户成功通过身份验证时,您可以编写侦听器来侦听SecurityAuthenticationEvents::AUTHENTICATION\u SUCCESS
  • 侦听器的公共方法应如下所示:

    public function onAuthenticationSuccess(AuthenticationEvent $event)
    {
        /**
         * @var User $user
         */
        $user = $event->getAuthenticationToken()->getUser();
    
        // ...
    
        return;
    }
    
  • 我相信你可以使用YamlFileLoader。当然,您可以创建一个服务类来读取yaml文件中的内容,并将其提供给应用程序中的不同服务。我不会尝试将它们与常规参数/配置文件混合使用
  • 当用户成功通过身份验证时,您可以编写侦听器来侦听SecurityAuthenticationEvents::AUTHENTICATION\u SUCCESS
  • 侦听器的公共方法应如下所示:

    public function onAuthenticationSuccess(AuthenticationEvent $event)
    {
        /**
         * @var User $user
         */
        $user = $event->getAuthenticationToken()->getUser();
    
        // ...
    
        return;
    }
    
  • 我相信你可以使用YamlFileLoader。当然,您可以创建一个服务类来读取yaml文件中的内容,并将其提供给应用程序中的不同服务。我不会尝试将它们与常规参数/配置文件混合使用

  • 非常感谢。“我不会尝试将它们与常规参数/配置文件混合使用。”-为什么?可能的替代方案是什么?问题是,配置在身份验证之前加载。在过去,我不得不做一些类似的事情,最终在不修改现有配置的情况下编写了一个解决方案。但如果你能做到这一点,并为你工作,你当然可以做到。我不确定,但是依赖注入容器可能会遇到问题。容器参数规则是:在容器被正确编译之前,您只能设置一个参数。还要记住,配置是基于应用程序环境的,因此依赖于经过身份验证的用户听起来是错误的。谢谢。“我不会尝试将它们与常规参数/配置文件混合使用。”-为什么?可能的替代方案是什么?问题是,配置在身份验证之前加载。在过去,我不得不做一些类似的事情,最终在不修改现有配置的情况下编写了一个解决方案。但如果你能做到这一点,并为你工作,你当然可以做到。我不确定,但是依赖注入容器可能会遇到问题。容器参数规则是:在容器被正确编译之前,您只能设置一个参数。还要记住,配置是基于应用程序环境的,因此依赖于经过身份验证的用户听起来是错误的。