我有什么:
-API使用friendsofsymfony / rest-bundle在Symfony2中休息,公开一些资源。
使用FOSOAuthServerBundle在Symfony2中使用-Oauth2服务器。
- Angular.js中的客户端向API Rest发出请求。此客户端当前通过授权代码授权(使用带有自定义模块的Hello.js)登录,并有效地获取访问令牌。
我希望这些API资源安全,所以:
-On API Rest app:我实现了AuthenticationEntryPointInterface,我将其设置为security.yml中的entry_point,以便在被拒绝时返回401代码和application / json内容类型。
-Client拦截401响应并将用户发送到登录表单。
-Client发送api休息请求,并在标头上设置X-Access-Token。
我目前的问题:
1)我不确定是否应该在客户端上为请求设置X-Access-Token,我知道这是正确的方法吗?或者我应该把它全部留给hello.js api方法吗?
2)我不知道如何让API Rest应用程序“询问”oauth服务器“这个令牌好吗?它属于谁?”这已经在Symfony解决了吗?
非常感谢任何答案或指南。请随意为我所描述的内容要求任何进一步的信息或代码。
答案 0 :(得分:0)
对于遇到类似问题的其他人:
1)对于登录后的客户端认证请求,我让hello.js hello(provider).api方法解决它。它将access_token作为参数发送。我没有必要在标题或任何其他“手工制作”触摸上设置X-Access-Token。
2)我没有找到symfony开箱即用的解决方案。但这就是我所做的:
- 为受保护的控制器配置了一个前置过滤器(参见doc)
- 在那种方法中,我调用了OAuthServer上的API(使用this bundle)