2017-08-29 55 views
1

我有一個Symfony 2.8 API,它提供數據以反應web應用程序,一切都在以前完美工作。 我正在使用LexikJWTAuthenticationBundle + Guard來驗證/ api。請求標題未通過生產

僅在生產中我的請求中缺少auth頭文件。在當地一切工作正常。我正在使用郵遞員進行測試。

生產請求頭:

object(Symfony\Component\HttpFoundation\HeaderBag)#10 (2) { 
    ["headers":protected]=> 
    array(9) { 
    ["cache-control"]=> 
    array(1) { 
     [0]=> 
     string(8) "no-cache" 
    } 
    ["postman-token"]=> 
    array(1) { 
     [0]=> 
     string(36) "9ad903a8-9f35-4ecf-8da3-dddb1f8ff2ca" 
    } 
    ["user-agent"]=> 
    array(1) { 
     [0]=> 
     string(20) "PostmanRuntime/6.2.5" 
    } 
    ["accept"]=> 
    array(1) { 
     [0]=> 
     string(3) "*/*" 
    } 
    ["host"]=> 
    array(1) { 
     [0]=> 
     string(16) "pro.musehall.com" 
    } 
    ["cookie"]=> 
    array(1) { 
     [0]=> 
     string(36) "PHPSESSID=6ca4iil63v2fiadfdpfnb6vlq4" 
    } 
    ["accept-encoding"]=> 
    array(1) { 
     [0]=> 
     string(13) "gzip, deflate" 
    } 
    ["connection"]=> 
    array(1) { 
     [0]=> 
     string(10) "keep-alive" 
    } 
    ["x-php-ob-level"]=> 
    array(1) { 
     [0]=> 
     int(1) 
    } 
    } 

本地請求頭:

object(Symfony\Component\HttpFoundation\HeaderBag)#10 (2) { 
    ["headers":protected]=> 
    array(10) { 
    ["authorization"]=> 
    array(1) { 
     [0]=> 
     string(938) ""Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXUyJ9.eyJlbWFpbCI6Im5pY29sYXNAYXB4LWRldi5jb20iLCJpZCI6OTExMTExNDExLCJhcGlLZXkiOiJhNGExZjM3NjQwZDkzM2UwYjRlYzg4ZDBiY2VjMjgyODNkYTRjNzU1IiwiZmlyc3RuYW1lIjoiTmljb2xhcyIsImxhc3RuYW1lIjoiQXB4IiwiaWF0IjoiMTUwMzk1NzYyNSJ9.j1hLlRoVNSkS5UotPGuV1PsVgePGb9BQSxceBrE2oxilpXNJUApfwHJ4iGjhvjtAugBO5LTd9EF4_cTSlh9NxGy_oTRalH8EeM8BNE2tK6WTvxiC-B0hxRl9ifmKfIVdNZm4_l6NFZaYGdE7isQozPj8stwjfWkitUg5cRSLCztKmXAc8fU4DttFzLMUi7G2cB1JxeWxYpXSmy_DNrVeDzvEt86MmE7xCuO79kk6MBDC4P848NOOZLTy8hMKpXFwqHV0A8voJTVNGJZZWIrX2GiUBQZxZBquJyqRgO3C2bboHQChPF_ETZ1Wj7OvCMwIsqAFPIasPZqcK3eBMmAde9CAWQ_a7-_izk5iBD6wbSrCVMd_NDpATsKK5uqI23Kvm5PY8A__TpYMI7DmIKd6NZe2WaBIA9nIkPLNWgomy_OUISsR1DfTUgpX9R_lT5odqDxLfHU17pEhrXnwMoghYQFN2oZuqtC6wwht05qDVvCvNMpM3VLqySus7j7lUogjEMawW-WvmUhVqnCJ079ZkpqU-CDTKOwt2rS63Y3ojGKCc3_faFNlB1T_Arm1M91ukfzSZS3uctkm9Sfcfwt8KMizWvmLpYbs7Mj6QsAhseNbW9MZ2kger_BvRSCOc0rhWWVylZ_n0ra5wz5yJbgoKo252YxMWhqW5YGPDAH6xZE"" 
    } 
    ["cache-control"]=> 
    array(1) { 
     [0]=> 
     string(8) "no-cache" 
    } 
    ["postman-token"]=> 
    array(1) { 
     [0]=> 
     string(36) "144afa4f-c482-4a30-8369-2a4b2f6e1a29" 
    } 
    ["user-agent"]=> 
    array(1) { 
     [0]=> 
     string(20) "PostmanRuntime/6.2.5" 
    } 
    ["accept"]=> 
    array(1) { 
     [0]=> 
     string(3) "*/*" 
    } 
    ["host"]=> 
    array(1) { 
     [0]=> 
     string(12) "musehall.dev" 
    } 
    ["cookie"]=> 
    array(1) { 
     [0]=> 
     string(36) "PHPSESSID=22v5la94j3m97mr54c31um67g2" 
    } 
    ["accept-encoding"]=> 
    array(1) { 
     [0]=> 
     string(13) "gzip, deflate" 
    } 
    ["connection"]=> 
    array(1) { 
     [0]=> 
     string(10) "keep-alive" 
    } 
    ["x-php-ob-level"]=> 
    array(1) { 
     [0]=> 
     int(1) 
    } 
    } 
    ["cacheControl":protected]=> 
    array(1) { 
    ["no-cache"]=> 
    bool(true) 
    } 
} 

正如你可以看到令牌丟失的生產服務器上。

我最近改變的唯一事情是我續簽了我的certbot證書。

勒西配置:

# json web token bundle 
lexik_jwt_authentication: 
    private_key_path: "%jwt_private_key_path%" 
    public_key_path: "%jwt_public_key_path%" 
    pass_phrase:  "%jwt_key_pass_phrase%" 
    token_ttl:  "%jwt_token_ttl%" 

任何想法?

回答

0

可能是由於apache剝離授權標頭。請參閱軟件包文檔中的"Important note for apache users"

Apache服務器將剝離任何授權標頭不是有效的HTTP BASIC AUTH格式。

如果你打算使用這個包的授權首標模式(你應該),請添加這些規則,以你的虛擬主機配置:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]