可以在Silex应用程序中使用Symfony安全链提供程序


Is is possible to use the Symfony Security chain provider in a Silex app?

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

我已经开始使用 OAuthServiceProvider (https://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 身份验证",但目前我找不到如何在 Silex 中使用它,如果有人这样做了,并且有一个如何配置 Silex 应用程序的示例来使用它,那就太好了。

in silex 2.0

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