繁体   English   中英

Symfony简单登录表单问题

[英]Symfony simple login form issue

我登录时遇到问题。我已经阅读了Symfony文档,有关stackoverflow的主题和其他教程。 当我尝试使用Firefox或Chrome浏览器登录时,第一次不会登录,但第二次尝试却成功。 在IE中,我完全不会登录。 您能帮忙吗? 我没主意了。 这是我的代码:

index.html.twig

<form action="{{ path('login_check') }}" method="post">
  <input type="text" id="username" name="_username" placeholder="{{ 'INDEX_LOGIN_USERNAME'|trans }}" />
  <input type="password" id="password" name="_password" placeholder="{{ 'INDEX_LOGIN_PASSWORD'|trans }}" />
  {#<input type="hidden" name="_target_path" value="/admin" />#}
  <button type="submit"></button>
</form>

routing.yml

login:
    path: /login
// without next line (defaults) I receive an error: Unable to find the controller for path "/login". The route is wrongly configured.
    defaults: { _controller: FC_Hlinsko_Bundle:Default:index } 
    options: { i18n: false }

logout:
    path: /logout
    options: { i18n: false }

homepage:
    path:     /
    defaults: { _controller: FC_Hlinsko_Bundle:Default:index }

admin:
    path:     /admin
    defaults: { _controller: FC_Hlinsko_Bundle:Admin:index }

安全性

security:
    providers:
        in_memory:
            memory:
                users:
                    admin:
                        password: $2y$12$aE7n0XduDqfYd5xZVfm.G.uiIZSMUCdtPxfz6VRgdBKrU2ihxcC7i
                        roles: 'ROLE_ADMIN'
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
            anonymous: true

        secured_area:
            pattern:    ^/
            form_login:
                check_path: /login_check
                login_path: login
            logout:
                path:   logout
                target: homepage
            anonymous: ~

    access_control:
        # require ROLE_ADMIN for /admin*
        - { path: /login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: /admin, roles: ROLE_ADMIN }

    encoders:
        Symfony\Component\Security\Core\User\User:
            algorithm: bcrypt
            cost: 12

问题解决了。 我浏览过dev.log,由于IE,它记录了此错误:您的会话已超时,或者您已禁用cookie ...因此,在进行一些搜索后,我发现undescore不能位于域名中(我的域名为fc_hlinsko.local /app_dev.php/),因此我创建了新的Symfony项目和新的Bundle,目前看来一切正常。.另外,我还必须在form_log下添加到我的security.yml中,此代码: require_previous_session: false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM