1

嗨,我已经用 Symfony2.8 配置了 lexik/jwt-authentication-bundle:v2.4,以下是我的 config.yml。

  lexik_jwt_authentication:
  private_key_path:  "%kernel.root_dir%/config/jwt/private.pem" # 
  required for token creation
  public_key_path:   "%kernel.root_dir%/config/jwt/public.pem"  # 
  required for token verification
  pass_phrase:      "%jwt_key_pass_phrase%" # required for token 
 creation, usage of an environment variable is recommended
  token_ttl:        3600

这是security.yml

 firewalls:
    login:
      pattern:  ^/api/login
      stateless: true
      anonymous: true
      form_login:
          check_path:               /api/login_check
          username_parameter: username
          password_parameter: password
          success_handler:          lexik_jwt_authentication.handler.authentication_success
          failure_handler:          lexik_jwt_authentication.handler.authentication_failure

    api:
        pattern:   ^/api
        stateless: true
        provider: my_provider
        guard:
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator

我正在尝试使用邮递员获取 JWT 令牌。

http://localhost/j1/web/app_dev.php/api/login_check

我得到了令牌。

 {
    "token": "eyJhbGciOiJSUzI1NiJ9.eyJyb2xlcyI6WyJST0xFX1VTRVIiXSwidXNlcm5hbWUiOiJpbmZvQGFtaXJmcmVlbGFuY2UuY29tIiwiaWF0IjoxNTUwODQ0NjQ0LCJleHAiOjE1NTA4NDgyNDR9.YKDrQ7_PaMOoW3m_reWhGb8PoNkc6wsB9EX86JNwGW4yAeG7ezqvgA4Je6AUD6BtZgGExs2oFsJTWoTAAjCyf4ZyCoUaZ7m_M7s4tJkStHgR64q1kwl1bNu21Lj0sbuAs9jjxRHzHzcNE-v8eoQf26iiXvcT1WTfhEiWQ97xtWbnTTqYzt38BjgVrqDIWDrV2CaaX-W0mHb1Ibif1VkHTgRziq1gWYgv7nqIvVVDynjIueP1HBGVBSvJPKAzzSZNWE5rcijtNVHRuH_UV0vafq1owMs8KQ8vu6pK2lH22ozHkb8V0MWHeXloHGGznAHyFnY4NPPHOwQ74hQfRT2_ibgoJ8VHtoGDsxY_8n56uIRykxk1YoXYPBEZHVEF9rCZSzCm693U-I1JNM2o6thj81tBBzTEce6csa4TbYuBEybx4zBb3pHNGAYqF3qEis63ZCzlgYsPrWOqReljfMA61QqcMcs15g6iEJ5aABgxK0FF2AuFx4_fkUDJHrZOmiasxE3ATiO4tEEf4DPizLjMsnmXgzvWkzVt1-SjBUxFLJWPGA8pCvGXrXA4-giQLWCThQ_zJ7hbGJl1_rVLT-KBoBgjV0OYaoeINh2rWXXypqo36Xh02I62_vReOCcw-He5rX6TsCuyyNAHBnP2CufC47fP-8L_ZSPWYjPxxdgOlK4"

}

我正在发送令牌以验证令牌。

http://localhost/j1/web/app_dev.php/api/locationData/8489

授权:Bearer {token} 与使用邮递员的请求。但我总是得到 JWT Not Found 的结果。

 "code":401,"message":"JWT Token not found"}

所以我用 JWTTokenAuthenticator 调试了代码,我发现它在请求中正确获取了 Authorization 标头,但是以下方法不会返回令牌。

  $jsonWebToken = $tokenExtractor->extract($request)

在这里,这总是返回 false。怎么办可以请任何人指导我。

提前致谢。

4

0 回答 0