我目前正在尝试使用我的 Symfony2 应用程序设置 FOSOAuthServerBundle。一切似乎都已设置并正常运行,无论如何我在安装后被卡住了。使用 URL 获取 access_token 的正确工作流程是什么?
我试过 /oauth/v2/auth,但听起来我需要先定义一个 Client 对象。
如何创建/生成客户端?客户端总是应该手动创建的?
FOSOAuthServerBundle 文档很棒,但似乎跳过了所有使用工作流程。我应该为此检查 OAuth2 文档吗?
谢谢 !
简而言之,是的。您应该使用 oAuth2 RFC 来确定要使用的工作流程。关于客户端注册,RFC 明确指出客户端注册的方式超出了规范的范围(https://www.rfc-editor.org/rfc/rfc6749#section-2)。
话虽如此,我可以让您了解我是如何做到这一点的。我的应用程序是一个手机应用程序,它连接到在各种服务器上运行的多个服务。我也在使用Resource Owner Password Credentials Grant
.
我处理这个问题的方法是:当应用程序加载时,它做的第一件事就是检查它是否有一个oAuth2 client id
. 如果没有,那么它会发布到我使用我需要的元数据设置的创建客户端端点。端点验证 POST,创建客户端并返回客户端信息。应用程序存储客户端 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.
检查这个:http ://blog.logicexception.com/2012/04/securing-syfmony2-rest-service-wiith.html
无论你使用它,转换为 Doctrine 都非常简单。
有一个命令行可以满足您的需要:创建一个客户端!