如何访问我的新Symfony API



我已经设法结合FOSUserBundle, FOSOAuthServerBundle和FOSRestBundle。我创建了一个客户端,并创建了一个UserController。我有了我的第一条路线

http://domain。remote/api/users [GET list users].

OAuth正在工作,我得到一个"访问拒绝"消息。我想写一些javascript代码访问这个api,但恐怕我甚至不知道从哪里开始。

有人能给我一些解释如何认证和访问我的新Symfony API?任何例子都会很有帮助。最好不要考虑JS框架,这样我就能掌握这个概念。

[编辑]

一些附加信息。我正在编写的JS代码将让用户登录他们的用户名/密码,然后管理他们的数据与后台工作的API。

您的端点/api/users是安全端点吗?检查你的安检。Yml文件需要什么样的授权才能访问这些端点。例如:

api:
        pattern:    ^/
        security: true

上面的代码意味着你所有的api url都是安全的,需要一个经过身份验证的用户来访问。您需要访问安全上下文来登录您的用户。在REST api中处理身份验证的最常见方法是使用OAuth方法,最好是OAuth2方法。我建议你使用FOSOAuthServerBundle来处理OAuth2。

安装bundle后,你需要创建4个实体(accesstoken, authcode, client, refreshtoken),你的api工作流将是这样的:

  1. 您的每个设备(移动应用程序,桌面,例如)将有一个client_id和client_secret。
  2. 你将请求一个令牌到你的api,使用FOSOAuthServerBundle令牌端点(/oauth/v2/token)传递授权类型(认证类型,你可以自定义以后)和数据,例如:oauth/v2/token?client_id=<client_id>&client_secret=<client_secret>&grant_type=password&password=abc123&username=<yourlogin>
  3. 如果登录凭据是有效的,api将返回一个访问令牌,您将使用所有后续请求:http://domain.remote/api/users?access_token? Njc4NTA0MzQ3ZjE4MTBlOWU5ZGUxYTQ2ZWE3N2I2YzM4MzFjODcxMDdkYTU0MzIwOWE4Zjg4OGRiZWNjOTg2NQ

这将允许您向api发出授权请求。你可以参考FOSOAuthServerBundle文档了解更多细节。

希望有帮助。

KNP对此有非常详细的教程。请看看这个教程。所有API教程的列表可以在这里找到

相关内容

  • 没有找到相关文章