FOS用户捆绑确认链接强制您登录

Mic*_*son 2 symfony fosuserbundle

我被要求在CRM中添加确认电子邮件,然后用户将注册,然后发送一封电子邮件,其中包含确认的链接以启用其帐户.但是,无论何时单击链接,它都会立即重定向到登录页面,因为它们尚未确认,因此无用.我试图在security.yml文件中排除它,但到目前为止没有运气.

我试过了:

- { path: ^/register/*, role: IS_AUTHENTICATED_ANONYMOUSLY }

- { path: ^/confirm/, role: IS_AUTHENTICATED_ANONYMOUSLY }

- { path: ^/register/confirm/*, role: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

但这些似乎都不起作用.

根据要求,FOS注册的路由文件:

<?xml version="1.0" encoding="UTF-8" ?>

<routes xmlns="http://symfony.com/schema/routing"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

    <route id="fos_user_registration_register" path="/" methods="GET POST">
        <default key="_controller">FOSUserBundle:Registration:register</default>
    </route>

    <route id="fos_user_registration_check_email" path="/check-email" methods="GET">
        <default key="_controller">FOSUserBundle:Registration:checkEmail</default>
    </route>

    <route id="fos_user_registration_confirm" path="/confirm/{token}" methods="GET">
        <default key="_controller">FOSUserBundle:Registration:confirm</default>
    </route>

    <route id="fos_user_registration_confirmed" path="/confirmed" methods="GET">
        <default key="_controller">FOSUserBundle:Registration:confirmed</default>
    </route>

</routes>
Run Code Online (Sandbox Code Playgroud)

FOS用户配置:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: AppBundle\Entity\User
    registration:
        confirmation:
            enabled: true
            template:   emails/registration.html.twig
            from_email:
                address:        noreply@siteemail.co.uk
                sender_name:    #sender name here#
    resetting:
        email:
            from_email:
                address:        noreply@siteemail.co.uk
                sender_name:    #sender name here#
            template: emails/password_reset.html.twig
Run Code Online (Sandbox Code Playgroud)

Symfony 3.1/FOS用户捆绑2.0任何帮助表示赞赏.

Jan*_*ych 5

恕我直言,因为确认路由是path="/confirm/{token}"你必须允许^/(confirm/){1}.+在security.yml中匿名地修改路径,因为在确认期间用户尚未经过身份验证.

因此,请将security.yml编辑为:- { path: '^/(confirm/){1}.+', role: IS_AUTHENTICATED_ANONYMOUSLY }

还要检查注册邮箱中的网址 - 它应该指向 example.com/confirmation/???