• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

symfony jwt zawsze zwraca 401 "Full authentication is required to access this resource."

Object Storage Arubacloud
0 głosów
508 wizyt
pytanie zadane 29 kwietnia 2020 w PHP przez Śwież4k Bywalec (2,570 p.)

Na froncie mam vue na backendzie symfony. Normalnie jestem w stanie zalogować się i otrzymać token, ale mimo to, nie mogę pobrać żadnych danych z serwera zabezpieczonych rolą IS_AUTHENTICATED_FULLY. Za każdym razem otrzymuję błąd taki jak w tytule. Odkryłem, że być może chodzi o źle skonfigurowane jwt, tak wygląda mój token: jwt verifier Już chyba 3 razy tworzyłem nowe klucze, mimo to problem nie ustępuje. Dokładam do nagłówka authorization: bearer [token] uprzedzając pytania

1 odpowiedź

+1 głos
odpowiedź 30 kwietnia 2020 przez Ehlert Ekspert (212,670 p.)

Bez kodu to tylko kryształowa kula, którą oddałem do naprawy, więc nie pomogę indecision

komentarz 30 kwietnia 2020 przez Śwież4k Bywalec (2,570 p.)
security:
    encoders:
        App\Entity\User:
            algorithm: auto

    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        # used to reload user from session & other features (e.g. switch_user)
        app_user_provider:
            entity:
                class: App\Entity\User
                property: email
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        register:
            pattern: ^/register
            stateless: true
            anonymous: true
        login:
            pattern: ^/api/
            stateless: true
            anonymous: true
            json_login:
                check_path: /api/login_check
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure
        refresh:
            pattern: ^/api/token/refresh
            stateless: true
            anonymous: true
        api:
            pattern:   ^/api
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator
        main:
            anonymous: lazy
            provider: app_user_provider

            # activate different ways to authenticate
            # https://symfony.com/doc/current/security.html#firewalls-authentication

            # https://symfony.com/doc/current/security/impersonating_user.html
            # switch_user: true

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/token/refresh, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
        # - { path: ^/admin, roles: ROLE_ADMIN }
        # - { path: ^/profile, roles: ROLE_USER }

security.yaml

komentarz 30 kwietnia 2020 przez Śwież4k Bywalec (2,570 p.)
i w sumie nwm co jeszcze mogę dać przydatnego, nie ma żadnego kontrolera związanego z logowaniem oprócz tego endpoint /api/login_check
komentarz 30 kwietnia 2020 przez Ehlert Ekspert (212,670 p.)

IMO masz za dużo firewalli potworzonych, zupełnie niepotrzebnie. Z racji tego że jest to kod zewnętrznej biblioteki to pozostaje sprawdzić czy masz wszystko zgodnie z dokumentacją oraz odpalić Xdebug i ogarnąć gdzie wywołania wędrują. 

Wcześniej sprawdź nagłówki odpowiedzi, może będzie adres do profilera, tam też jest dużo info.

A tak na chama to możesz w vendorze die'ie powstawiać i zobaczyć na czym się wywala.

Trzeba sobie radzić wink

komentarz 30 kwietnia 2020 przez Śwież4k Bywalec (2,570 p.)
W odpowiedzi dostaję adres do profilera z tym błędem

Full authentication is required to access this resource.

Czyli tak jakbym nie był zalogowany albo wpisał endpoint w adres wyszukiwarki,

Używajac tego co jest w dokumentacji dostaję cors. Tak samo gdybym chciał zmienić tylko username_parameter i password_parameter to też cors. Nie wiem, nie wiem
komentarz 30 kwietnia 2020 przez Ehlert Ekspert (212,670 p.)
Ja wiem jaka zwrotkę dostajesz. Miałeś sprawdzić co się dzieje wewnątrz.

Podobne pytania

0 głosów
2 odpowiedzi 454 wizyt
pytanie zadane 12 grudnia 2017 w PHP przez CenterPL Pasjonat (19,070 p.)
0 głosów
0 odpowiedzi 75 wizyt
pytanie zadane 22 grudnia 2019 w PHP przez niezalogowany
+1 głos
1 odpowiedź 157 wizyt
pytanie zadane 10 sierpnia 2021 w JavaScript przez Piotr Zakrzewski Obywatel (1,260 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...