繁体   English   中英

Symfony 2.6 - 安全提供商

[英]Symfony 2.6 - Security provider

我目前正在使用Symfony2.6开发一个应用程序而且我遇到了一些麻烦。 我有两种用户客户员工,所以在我的数据库中我有一个表客户和一个表员工。 当用户尝试登录时,如何告诉symfony在这两个表中查找用户凭据?

我知道您可以在security.yml文件中定义一个提供程序,该文件可以是实体但是如何声明两个提供程序? 是可能还是我必须以另一种方式做到这一点?

谢谢大家的答案

我和(目前)两种不同类型的用户有类似的东西。 为了处理所有的登录和权限,我正在使用FosUserBundle,并为它们分配我可以检查的角色,然后根据它来获取用户配置文件。

为了确保他们在用户创建时获得正确的ROLE_ *,我遵循了SO问题, 在创建时将新的FOSUserBundle用户添加到默认组 他们使用将要扮演的未来角色来获取会话变量,然后我有一个事件监听器将该角色设置为新创建的FosUser:

<?php
class UserCreationListener implements EventSubscriberInterface
{

// lots of constructor setup, debugging, logging and checks removed from code

public static function getSubscribedEvents()
{
    return array(
        FOSUserEvents::REGISTRATION_SUCCESS => 'onRegistrationSuccess',
    );
}

public function onRegistrationSuccess(FormEvent $event)
{
    $user = $event->getForm()->getData();
    $newRole = $this->session->get('futureRole', 'ROLE_CUSTOMER');
    $user->addRole($role);
    $this->userManager->updateUser($user);
    return $this->redirect->redirect('app_profile', 302);
}

}

所以这里的某些人我已经找到了这个特定问题的答案http://symfony.com/doc/current/cookbook/security/multiple_user_providers.html

Symfony允许我们声明多个用户提供者

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM