2015-04-21 31 views
5

我正在嘗試在我的Symfony 2.7應用程序上使用LexikJWTAuthenticationBundleFOSUserBundleJWT使用Symfony 2.7進行驗證

基本上,FOSUserBundle配置工作正常:我正確加載我的燈具,如果我嘗試登錄通過登錄表單成功。

從login_check獲取令牌也有效。然後,我將「承載者」的授權標題放在標題中,並嘗試訪問另一個頁面。它始終以401響應結果。

有沒有人有關於可能是問題或如何進行調試的任何線索?

這裏是我的配置:

# app/config/config.yml 

# DunglasJsonLdApi 
dunglas_json_ld_api: 
    title:  %api_name% 
    description: %api_description% 
    default: 
     order: DESC 

# FOSUserBundle 
fos_user: 
    db_driver:  orm 
    firewall_name: api 
    user_class: ApiBundle\Bundles\UserBundle\Entity\User 

# LewikJWTAuthentificationBundle 
lexik_jwt_authentication: 
    private_key_path: %kernel.root_dir%/config/jwt/private.pem 
    public_key_path: %kernel.root_dir%/config/jwt/public.pem 
    pass_phrase:  %jwt_pass_phrase% 
    token_ttl:  86400 
# app/config/routing.yml 

# DunglasJsonLdBundle 
api_doc: 
    resource: @DunglasJsonLdApiBundle/Resources/config/routing.xml 
    prefix: /api 

api: 
    resource: . 
    type:  json-ld 
    prefix: /api 

# FOSUserBundle 
fos_user_security_login: 
    path:  /login 
    defaults: { _controller: FOSUserBundle:Security:login } 

fos_user_security_check: 
    path:  /api/login_check 
    defaults: { _controller: FOSUserBundle:Security:check } 

fos_user_security_logout: 
    path:  /logout 
    defaults: { _controller: FOSUserBundle:Security:logout } 
# app/config/security.yml 

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

    role_hierarchy: 
     ROLE_CA:   ROLE_USER 
     ROLE_SUPER_ADMIN: [ ROLE_CA, ROLE_ALLOWED_TO_SWITCH ] 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username_email 

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

     login: 
      pattern: ^/login|^/api/login 
      provider: fos_userbundle 
      stateless: true 
      anonymous: true 
      form_login: 
       login_path:    fos_user_security_login 
       check_path:    fos_user_security_check 
       username_parameter:  username 
       password_parameter:  password 
       success_handler:   lexik_jwt_authentication.handler.authentication_success 
       failure_handler:   lexik_jwt_authentication.handler.authentication_failure 
       require_previous_session: false 

     api: 
      pattern: ^/api 
      provider: fos_userbundle 
      stateless: true 
      anonymous: true 
      lexik_jwt: 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/api/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: IS_AUTHENTICATED_FULLY } 

完整的應用程序提供here

回答

5

現在看來它工作正常。自從我發佈我的問題之後,我沒有改變任何事情,但在發佈之前,我重新啓動了我的機器,重新啓動了MySQL,nginx,PHP5-FPM並刪除了Symfony緩存,所以我真的不明白髮生了什麼......