Symfony2 rest api安全配置(试着理解)

时间:2015-04-30 10:58:35

标签: angularjs api rest symfony oauth

I',使用Symfony2(FOSRestBundle,FOSOauthBundle,JMSBundle)处理休息API,我不明白(并且找不到)我应该如何设置我的angularjs应用程序来访问我的api资源。我对安全部分有点困惑,并且有很多问题。

1-我准备了oauth客户。由于角度代码被暴露,我很确定我无法在代码中添加我的秘密和客户端ID以进行身份​​验证,因此我可以堆叠。 ħ

2-我尝试访问资源时遇到(No' Access-Control-Allow-Origin')错误。我怎样才能让我的应用程序访问资源(CORS!nelmio / cors-bundle?),但后来我对我的应用程序的oauth和CORS授权的作用感到困惑。

任何帮助都将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:1)

  1. 您可以曝光。它不是完全授权。它只是一个客户端身份验证,而不是用户。

  2. 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
    
  3. allow_origin ,您应将其设置为 my.frontend.domain.com 。这将为您的AngularJS前端打开您的API。如果您正在构建API作为服务(对所有人开放),而不是对所有来源开放“*”。

    CORS不是授权。把它当作防火墙。比你还需要授权(OAuth)。