2

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

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

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

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

谢谢 !

4

2 回答 2

2

简而言之,是的。您应该使用 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。

I could have also created the oAuth2 client when the user created an account in the application, but I wanted to make the registration process as fast as possible. Creating the client would have added some extra waiting time to the process.

于 2013-08-08T12:39:45.300 回答
0

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

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

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

于 2013-02-11T14:09:45.750 回答