是否可以在Silex应用程序中使用Symfony Security链提供程序?

时间:2016-04-27 10:57:46

标签: php symfony silex

我有一个到目前为止使用基本身份验证的应用程序。该应用程序的一个要求是允许使用OAuth进行身份验证。

我已经开始使用OAuthServiceProviderhttps://github.com/gigablah/silex-oauth)来实现这一点,我已经让它发挥作用了。

但是,我想拥有多个身份验证提供程序。这样我就可以在应用程序中为没有此类帐户或不想使用它们的人注册用户。这也是因为我有一个对应用程序具有“管理员”权限的本地系统用户。

我已经阅读过此内容,我已经看到Symfony 2对安全提供程序有chain_provider。由于Silex是以Symfony为基础的,我想知道是否有可能在Silex中实现这一点。

我已经查看了在Symfony中执行此操作的代码 - http://symfony.com/doc/current/cookbook/security/multiple_user_providers.html。但我不知道如何将YML配置转换为Silex中的服务注册。

非常感谢任何帮助。

更新(2016年5月10日)

我已删除了一些信息,因为它不正确。无法让Silex开箱即用使用表单和OAuth身份验证。

我现在必须只使用OAuth,并且我不能拥有本地身份验证这一事实。我想查看评论中提到的'Guard Authentication',但我现在无法在Silex中找到如何使用它,如果有人这样做并且有一个如何配置Silex App以使用它的示例会很棒的。

1 个答案:

答案 0 :(得分:1)

在silex 2.0中

$app->register(new Silex\Provider\SecurityServiceProvider(), [
    'security.firewalls' => [...
         'users' => function ($app) {
                           return new ChainUserProvider(
                             [$userProviderOne, $userProviderTwo]);) ...