Проверка подлинности Symfony lexik jwt с использованием пользовательской ошибки провайдера пользователя: «вызов функции-члена getUsername () в null»

Я объединил Lexik JWT аутентификация с пользовательский провайдер и побежал LexikJWT Sandbox руководство по использованию.

Все отлично работает, кроме последнего шага в руководстве.

$ curl -H "256tokencharacters" http://localhost:8000/api приводит к следующей ошибке:

{
"code": 500,
"message": "Call to a member function getUsername() on null"}

это getUsername() функция исходит от предложенная функция Lexik api () в моем DefaultController.

Это связано с тем, что $ this-> getUser () возвращает ноль, что связано с
$this->container->get('security.token_storage') возвращая ноль.

Так что по какой-то причине этот «security.token_storage» остается пустым.
Я не уверен, что это значит.

security.yaml

security:
encoders:
App\Security\User\WebserviceUser: plaintext

role_hierarchy:
ROLE_ADMIN:       ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
webservice:
id: App\Security\User\WebserviceUserProvider
jwt:
lexik_jwt:
class: App\Security\User\WebserviceUser

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

login:
pattern:  ^/api/login
stateless: true
anonymous: true
provider: webservice
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure

client_list:
pattern:  ^/api/client/active
stateless: true
anonymous: true

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

access_control:
- { path: ^/api,       roles: IS_AUTHENTICATED_FULLY }
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/client/active, roles: IS_AUTHENTICATED_ANONYMOUSLY }

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]