लौटाता है मैं एक विश्वसनीय API के लिए LexikJWTBundle का उपयोग कर रहा हूं।लेक्सिक जेडब्ल्यूटी 401 अनधिकृत
लॉगिन ठीक काम करता है और मुझे अपना टोकन मिलता है। लेकिन जब मैं एक जीईटी अनुरोध करता हूं तो मुझे कोई सामग्री नहीं मिलती है। प्राधिकरण हैडर ठीक लगता है के बाद से मैं प्रोफाइलर में यह मिलता है: अनुरोध हेडर: प्राधिकरण: बियरर {टोकन} अनुरोध सर्वर पैरामीटर: HTTP_AUTHORIZATION: बियरर {टोकन}
401 मैं से है: https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Security/Firewall/JWTListener.php#L80
मैंने विभिन्न समाधानों का प्रयास किया है लेकिन फिर भी यह काम नहीं कर रहा है।
क्या आपको इस बारे में कोई विचार होगा कि इसे कैसे हल/डीबग करें?
मेरे config:
# config.yml
...
lexik_jwt_authentication:
private_key_path: %kernel.root_dir%/var/jwt/private.pem # ssh private key path
public_key_path: %kernel.root_dir%/var/jwt/public.pem # ssh public key path
pass_phrase: 'TEST' # ssh key pass phrase
token_ttl: 86400 # token ttl - defaults to 86400
और
# security.yml
security:
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_SONATA_ADMIN, ROLE_ALLOWED_TO_SWITCH]
# http://sonata-project.org/bundles/admin/2-3/doc/reference/security.html
# set access_strategy to unanimous, else you may have unexpected behaviors
access_decision_manager:
strategy: unanimous
encoders:
FOS\UserBundle\Model\UserInterface: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api_login:
pattern: ^/api/login # Default: .*
provider: fos_userbundle
# form login
form_login:
login_path: fos_user_security_login
# csrf_provider: form.csrf_provider # Default: my.csrf_provider.id
# LexikJWT # 09/01/15 - Note: provient de la configuration officielle.
check_path: api_login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
require_previous_session: false
anonymous: true # Default: ~
api:
pattern: ^/api
stateless: true
lexik_jwt:
authorization_header: # check token in Authorization Header
enabled: true
prefix: Bearer
anonymous: true
access_control:
# Secured part of the site
# This config requires being logged for the whole site and having the admin role for the admin part.
# Change these rules to adapt them to your needs
- { path: "^/api/contacts$", roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST] }
- { path: "^/api/users/dt$", roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [GET] }
- { path: "^/api/users$", roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST] }
- { path: "^/api", roles: [IS_AUTHENTICATED_FULLY, ROLE_API] }
आपके उत्तर के लिए धन्यवाद। समस्या यह थी कि प्रदाता एपीआई फ़ायरवॉल में गायब था। इसलिए इसे api_login और api में होना चाहिए। – Xavier13