【问题标题】:FOSOAuthServerBundle Create ClientFOSOAuthServerBundle 创建客户端
【发布时间】:2013-01-17 03:48:09
【问题描述】:

我目前正在尝试使用我的 Symfony2 应用程序设置 FOSOAuthServerBundle。 一切似乎都已设置并正常运行,无论如何我在安装后被卡住了。 使用 URL 获取 access_token 的正确工作流程是什么?

我试过 /oauth/v2/auth,但听起来我需要先定义一个 Client 对象。

如何创建/生成客户端?客户端总是应该手动创建的?

FOSOAuthServerBundle 文档很棒,但似乎跳过了所有使用工作流程。我应该为此检查 OAuth2 文档吗?

谢谢!

【问题讨论】:

    标签: rest symfony oauth-2.0


    【解决方案1】:

    简而言之,是的。您应该使用 oAuth2 RFC 来确定要使用的工作流程。关于客户端注册,RFC 明确指出客户端注册的方式超出了规范的范围 (https://www.rfc-editor.org/rfc/rfc6749#section-2)。

    话虽如此,我可以让您了解我是如何做到这一点的。我的应用程序是一个手机应用程序,它连接到在各种服务器上运行的多个服务。我也在使用Resource Owner Password Credentials Grant

    我解决这个问题的方法是:当应用程序加载时,它做的第一件事就是检查它是否有oAuth2 client id。如果没有,那么它会发布到我使用我需要的元数据设置的创建客户端端点。端点验证 POST,创建客户端并返回客户端信息。应用程序存储客户端 ID,下次不必重复该过程。

    1. 应用程序加载;
    2. 应用程序检查 oAuth2 客户端 ID;
    3. 如果有,则流程结束;
    4. 如果没有,它会发布到http://www.example.com/client;
    5. 如果我们得到 200,则存储 oAuth2 客户端 ID。

    当用户在应用程序中创建帐户时,我也可以创建 oAuth2 客户端,但我希望尽快完成注册过程。创建客户端会增加一些额外的等待时间。

    【讨论】:

      【解决方案2】:

      检查这个:http://blog.logicexception.com/2012/04/securing-syfmony2-rest-service-wiith.html

      无论你使用它,转换成Doctrine都非常简单。

      有一个命令行可以满足您的需要:创建一个客户端!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-28
        相关资源
        最近更新 更多