2016-03-15 115 views
0

有一个网站我正在努力一点。我最近添加了一个API,以便我可以收到通知。要获得这些通知,我现在键入此URL从没有登录的访问令牌获取数据

http://localhost/pham/Claroline/web/app_dev.php/icap_notification/api/notifications.json?access_token=“一些访问令牌”

因为,如果用户登录它只是工作。有没有可能让它没有被登录的用户的工作?我的意思是,因为我获得访问令牌应该不成问题。其实我需要它来完成,因为我也在开发移动应用程序,基本上我用这个网址的应用程序,以显示通知

谢谢大家

编辑:这里的security.yml文件

安全性:

providers: 
    user_db: 
     entity: { class: Claroline\CoreBundle\Entity\User } 

encoders: 
    Claroline\CoreBundle\Entity\User: sha512 

firewalls: 
    install: 
     pattern: ^/install 
     security: false 

    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    oauth_token: 
     pattern: ^/oauth/v2/token 
     security: false 

    oauth_authorize: 
     pattern: ^/oauth/v2/auth 
     form_login: 
      check_path: /oauth/v2/auth_login_check 
      login_path: /oauth/v2/auth_login 
      default_target_path: /oauth/v2/auth/form 
     anonymous: true 

    api: 
     pattern: ^/api 
     claro_api: true 
     #fos_oauth: true 
     #stateless: true 
     security: true 

    main: 
     pattern: ^/ 
     simple_form: 
      authenticator: claroline.core_bundle.library.security.external_authenticator 
      check_path: /login_check 
     form_login: 
      success_handler: claroline.authentication_handler 
      failure_handler: claroline.security.ajax_authentication_failure_handler 
     anonymous: ~ 
     logout: true 
     switch_user: { role: ROLE_ADMIN, parameter: _switch } 
     remember_me: 
      key:  "%secret%" 
      lifetime: 31536000 # 365 days 
      path: /
      domain: ~ 

access_decision_manager: 
    allow_if_all_abstain: false 

access_control: 
    - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/api,     role: IS_AUTHENTICATED_FULLY } 
    - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/connect, role: IS_AUTHENTICATED_ANONYMOUSLY } 
+0

解决了!我只需修改防火墙的api部分中的模式:^/api to/api / –

回答

0

是的,这是可能的。 Symfony2 documentation描述可能为您的应用程序提供多个“防火墙”。

在你的情况下,你的网站大多数是“正常”的,而你的API是“api access”。当然,它们可以是不同的类型,并使用不同的用户提供者(又称不同的“用户”)。