0

我已经构建了一个登录表单,其中包含一个成功设置身份验证令牌的自定义提供程序。

在重定向拦截页面上,我可以在分析器中看到“登录身份”。然后表单重定向到我的成功页面。

出于某种原因,我的成功页面无法识别我已登录并循环回到登录页面。

security:
    encoders:
        EP\Common\Entity\User: sha1
        encode_as_base64: false

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        main:
            entity: { class EP\Common\Entity\User, property: username }

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

        login_form:
            pattern: ^/cms/(login|logout)$
            security: false

        cms:
            pattern:  ^/cms/
            security: true
            provider: main
            form_login:
                check_path: /cms/login_check
                login_path: /cms/login
            logout:
                path:   /cms/logout
                target: /cms/login


    access_control:
        - { path: ^/cms/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http }
        - { path: /cms, roles: ROLE_USER }
4

1 回答 1

0

我发现这是为什么。

我已将这些方法添加到我的 User 类中(请注意反序列化中的 [0] - 原则是根据 ID 的第一个字符查找用户的 ID):

/**
 * (PHP 5 &gt;= 5.1.0)<br/>
 * String representation of object
 * @link http://php.net/manual/en/serializable.serialize.php
 * @return string the string representation of the object or null
 */
public function serialize()
{

    return serialize($this->getId());
}

/**
 * (PHP 5 &gt;= 5.1.0)<br/>
 * Constructs the object
 * @link http://php.net/manual/en/serializable.unserialize.php
 * @param string $serialized <p>
 * The string representation of the object.
 * </p>
 * @return mixed the original value unserialized.
 */
public function unserialize($serialized)
{

    $this->_uuid = unserialize($serialized)[0];
}
于 2013-03-22T15:54:36.917 回答