在不登录的情况下从具有访问令牌的用户获取数据


Get data from a user with access token without being logged in

我正在开发这个网站。我最近添加了一个API,这样我就可以收到通知了。要获得这些通知,我键入以下url

http://localhost/pham/Claroline/web/app_dev.php/icap_notification/api/notifications.json?access_token="某些访问令牌">

目前,它只有在用户登录的情况下才能工作。在没有用户登录的条件下,它是否可以工作?我的意思是,既然我得到了访问令牌,这应该不会成为问题。事实上,我需要这样做,因为我也在开发一个移动应用程序,基本上我在应用程序中使用这个url来显示通知

谢谢大家

编辑:这是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 }

是的,这是可能的。Symfony2文档描述了可以为您的应用程序设置多个"防火墙"。

在您的情况下,您的大多数网站都有一个"正常"的,api有一个"api访问"的。当然,它们可以是不同的类型,使用不同的用户提供者(也就是不同的"用户"集合(。