Symfony - не найден маршрут, когда токен в URL - PullRequest
0 голосов
/ 23 декабря 2018

Я работаю над добавлением функции сброса пароля в существующем приложении Symfony, и, таким образом, мне удалось выполнить половину работы lol Я застрял при создании URL с токеном.

Я получаю поотправьте по электронной почте следующую ссылку: [...] / интранет / забыл-пароль / 1066dc12cb38651660756e6f7b9e936a8a128371bd7d8de304

Когда я нажимаю, что я получаю: не найден маршрут для "GET / Forgot-Password / 1066dc12cb38651660d6 * 86636663663663663666063766463766463766463766463766463766463766463763666463766463766463766463766463766463763663663763663666806e6Мой файл маршрутизации выглядит так:

security:
    encoders:
        AppBundle\Entity\User: bcrypt

    role_hierarchy:
        ROLE_GOD: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
        ROLE_ADMIN: [ROLE_MANAGE_USER, ROLE_MANAGE_CATEGORY, ROLE_MANAGE_TITLE, ROLE_MANAGE_DOCUMENT, ROLE_MANAGE_ARTICLE, ROLE_MANAGE_COURSE, ROLE_MANAGE_SAE]

    providers:
        our_users:
            entity: { class: AppBundle\Entity\User, property: email }

    firewalls:           
        # disables authentication for assets and the profiler
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            anonymous: true
            guard:
                authenticators:
                    - app.security.login_form_authenticator

            logout:
                path: /logout
            switch_user: ~
        forgot_password:
             pattern:  ^/api/forgot-password
             anonymous: true
        reset_password:
             pattern:  ^/api/reset-password
             anonymous: true
        api:
            pattern:   ^/api
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/forgot-password,   role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/reset-password/,   role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api,                   roles: IS_AUTHENTICATED_FULLY }
        - { path: ^/, roles: ROLE_USER}

А мой файл маршрутизации выглядит так:

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

coop_tilleuls_forgot_password.reset:
    path:   '/api/forgot-password'
    defaults:  { _controller:  coop_tilleuls_forgot_password.controller.forgot_password:resetPasswordAction}
    methods:  [POST]

coop_tilleuls_forgot_password.update:
    path:   '/reset-password/{tokenValue}'
    defaults:  { _controller: coop_tilleuls_forgot_password.controller.forgot_password:updatePasswordAction}

Чего мне не хватает?

1 Ответ

0 голосов
/ 23 декабря 2018
coop_tilleuls_forgot_password.reset:
    path:   '/api/forgot-password'
    defaults:  { _controller:  coop_tilleuls_forgot_password.controller.forgot_password:resetPasswordAction}
    methods:  [POST]

Вы пытаетесь дозвониться до /api/forgot-password с помощью запроса POST?Вероятно, нет, измените это, чтобы разрешить GET.Кроме того, путь должен включать {token}.

Кроме того, есть опечатка.Заменить

- { path: ^/api/forgot-password,   role: IS_AUTHENTICATED_ANONYMOUSLY }

на

- { path: ^/api/forgot-password,   roles: IS_AUTHENTICATED_ANONYMOUSLY }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...