【问题标题】:Is is possible to use the Symfony Security chain provider in a Silex app?是否可以在 Silex 应用程序中使用 Symfony 安全链提供程序?
【发布时间】:2016-08-21 15:11:09
【问题描述】:

我有一个到目前为止一直在使用基本身份验证的应用程序。该应用程序的要求之一是允许使用 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 开箱即用地使用 Form 和 OAuth 身份验证。

目前我将不得不只使用 OAuth,并接受我也无法进行本地身份验证的事实。我想查看 cmets 中提到的“Guard Authentication”,但目前我找不到如何在 Silex 中使用它,如果有人这样做并且有一个如何配置 Silex 应用程序以使用它的示例会很棒。

【问题讨论】:

  • 你能显示你正在使用的安全配置吗?
  • 顺便说一句,silex just got guard integration,所以你可以使用multiple guard authenticators(但我担心你需要为 OAuth 过程创建一个身份验证器,不过应该不会太难)
  • @mTorres 感谢 cmets。在过去的 3 天里,我没有机会看到这个,我知道在我的测试中我已经破坏了一切。我会让它再次工作并发布更新。

标签: php symfony silex


【解决方案1】:

在 silex 2.0 中

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2017-12-25
    • 1970-01-01
    • 2011-03-13
    • 2017-08-02
    • 2013-05-18
    相关资源
    最近更新 更多