I',使用Symfony2(FOSRestBundle,FOSOauthBundle,JMSBundle)处理休息API,我不明白(并且找不到)我应该如何设置我的angularjs应用程序来访问我的api资源。我对安全部分有点困惑,并且有很多问题。
1-我准备了oauth客户。由于角度代码被暴露,我很确定我无法在代码中添加我的秘密和客户端ID以进行身份验证,因此我可以堆叠。 ħ
2-我尝试访问资源时遇到(No' Access-Control-Allow-Origin')错误。我怎样才能让我的应用程序访问资源(CORS!nelmio / cors-bundle?),但后来我对我的应用程序的oauth和CORS授权的作用感到困惑。
任何帮助都将不胜感激。 谢谢
答案 0 :(得分:1)
您可以曝光。它不是完全授权。它只是一个客户端身份验证,而不是用户。
NelmioCorsBundle是个不错的选择。你需要这样的配置:
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
paths:
'^/':
allow_origin: ['*']
allow_headers: ['origin', 'x-requested-with', 'content-type', 'authorization']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'OPTIONS']
max_age: 0
allow_origin ,您应将其设置为 my.frontend.domain.com 。这将为您的AngularJS前端打开您的API。如果您正在构建API作为服务(对所有人开放),而不是对所有来源开放“*”。
CORS不是授权。把它当作防火墙。比你还需要授权(OAuth)。