2

我已经成功地结合了 FOSUserBundle、FOSOAuthServerBundle 和 FOSRestBundle。我已经创建了一个客户端,并且我已经创建了一个 UserController。我有我的第一条路线

http://domain.remote/api/users [获取列表用户]。

OAuth 工作正常,我收到“拒绝访问”消息。我想写一些访问这个 api 的 javascript 代码,但恐怕我什至不知道从哪里开始。

有人能给我一些关于如何验证和访问我的新 Symfony API 的解释吗?任何示例都会非常有帮助。最好不要考虑 JS 框架,这样我就可以掌握这个概念。

[编辑]

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

4

2 回答 2

1

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

于 2015-07-28T05:22:39.717 回答
1

您的端点/api/users是安全端点吗?检查您的 security.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. 您将使用 FOSOAuthServerBundle 令牌端点 ( /oauth/v2/token) 向您的 api 请求令牌,传递授权类型(身份验证类型,您可以稍后自定义)和数据,例如: 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 文档了解更多详细信息。

希望能帮助到你。

于 2015-08-20T05:46:34.817 回答