【问题标题】:Symfony2 User Provider from RESTful webservice来自 RESTful 网络服务的 Symfony2 用户提供程序
【发布时间】:2013-03-23 19:26:25
【问题描述】:

我正在尝试在 Symfony 2 中创建一个简单的用户提供程序,但我不知道这应该如何与 web 服务一起使用。我公司的身份验证由 RESTful Web 服务处理,具有各种路由:

POST /user, GET /user, POST /login

因此,在创建 Symfony 2 应用程序时,我的用户提供商必须咨询网络服务以验证凭据和权限。这可能吗?有这样的捆绑包吗?

另外,我怎样才能在这方面取得良好的表现? Symfony 用户提供程序的工作方式,我猜它会在每个请求上咨询 Web 服务,以获取用户数据。这可以避免吗?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    您可以使用两个很棒的捆绑包:

    要处理 REST 请求,请尝试 FOSRestBundle (https://github.com/FriendsOfSymfony/FOSRestBundle), 对于用户提供者,请尝试 FOSUserBundle (https://github.com/FriendsOfSymfony/FOSUserBundle)

    这些都是很好的捆绑包,您也可以获得很好的文档。

    【讨论】:

    • 这不是我要找的,请再次阅读问题。
    【解决方案2】:

    您可以通过实现身份验证提供程序和用户提供程序来做到这一点,每个提供程序都会处理对您的网络服务的调用以进行身份​​验证。 您可以有一个客户端类来进行 Web 服务调用,并将响应缓存在某处以避免它调用每个请求,尽管需要这取决于 Web 服务的速度有多慢。

    我已经完成了这种方法,因此如果您需要,可以填补空白。

    【讨论】:

    • 我做到了,我的问题是:如何避免常见的陷阱,例如由于请求饱和而导致性能糟糕?正如我之前所说,我担心 Symfony 在每个请求上都会不断调用 Web 服务(通过 UserProvider)。
    • 正如我所说,在您的 api 客户端中实现响应缓存。缓存到 redis、memcache 或其他东西。而且很确定你没有说你是这样做的,所以不值得负 1
    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    相关资源
    最近更新 更多