我设法将FOSUserBundle,FOSOAuthServerBundle和FOSRestBundle结合起来。 我创建了一个客户端,并且我创建了一个UserController。我有第一条路线
http://domain.remote/api/users [获取列表用户]。
OAuth正在运行,我收到“拒绝访问”消息。我想写一些访问这个api的javascript代码,但我恐怕我甚至不知道从哪里开始。
有人可以给我一些关于如何验证和访问我的新Symfony API的解释吗?任何例子都会非常有用。最好没有JS框架,所以我可以掌握这个概念。
[编辑]
一些额外信息。我正在编写的JS代码将让用户使用他们的用户名/密码登录,然后使用API在幕后工作来管理他们的数据。
答案 0 :(得分:1)
答案 1 :(得分:1)
您的端点/api/users
是否是安全端点?检查security.yml文件,访问此端点需要哪种授权。例如:
api:
pattern: ^/
security: true
上面的代码表示您的所有api url都是安全的,需要经过身份验证的用户才能访问它。您需要访问安全上下文来记录您的用户。在REST api中处理身份验证的最常用方法是使用OAuth方法,最好是OAuth2方法。我建议您使用FOSOAuthServerBundle来处理OAuth2。
安装捆绑包后,您需要创建4个实体(accesstoken,authcode,client,refreshtoken),您的api工作流程将如下所示:
/oauth/v2/token
)向您的api请求令牌,传递授权类型(身份验证类型,您可以稍后自定义)和数据,例如:
oauth/v2/token?client_id=<client_id>&client_secret=<client_secret>&grant_type=password&password=abc123&username=<yourlogin>
http://domain.remote/api/users?access_token? Njc4NTA0MzQ3ZjE4MTBlOWU5ZGUxYTQ2ZWE3N2I2YzM4MzFjODcxMDdkYTU0MzIwOWE4Zjg4OGRiZWNjOTg2NQ
这将允许您向您的api发出授权请求。您可以参考FOSOAuthServerBundle documentations了解更多详情。
希望它有所帮助。