FOSUserBundle的登录表单的路由未在网络地址中找到

时间:2017-08-16 13:31:50

标签: symfony fosuserbundle

使用Symfony(使用FOSUserbundle)在Windows 10中的WampServer上进行开发。

我必须通过本地网络IP(而非计算机的本地IP,即127.0.0.1)访问我的应用程序,因为在注册/身份验证过程中的某个时刻,必须调用外部(国家)身份验证服务。

当我使用 http://[my_network_ip]:81/ 以及 http://127.0.0.1:81/ 时,我的应用程序正常工作,但FOSUserBundle的登录表单除外。使用 http://127.0.0.1:81/login 时会显示例外页面,但在使用 http://[my_network_ip]:81/login 时,我会

  

找不到“GET / login /”

的路线

部分配置:

security.yml

# https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded
providers:
    in_memory:
        memory: ~
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    # disables authentication for assets and the profiler, adapt it according to your needs
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    main:
        anonymous: ~
        logout: ~
        # activate different ways to authenticate

        # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
        #http_basic: ~

        # https://symfony.com/doc/current/security/form_login_setup.html
        form_login: ~
            #login_path: fos_user_security_login
            #check_path: fos_user_security_check
            #provider: fos_userbundle
            #csrf_token_generator: security.csrf.token_manager
            #default_target_path: /

encoders:
    AppBundle\Entity\FasUser: bcrypt

的routing.yml

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

singlesingon_view:
    path:     '/authentication/singlesignon/'
    defaults: { _controller: AppBundle:AuthenticationSingleSignOn:view }

singlesingout_view:
    path:     '/authentication/singlesignout/'
    defaults: { _controller: AppBundle:AuthenticationSingleSignOut:view }

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

app_dev.php

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'],['[my_network_ip]','127.0.0.1', '::1'], true) || PHP_SAPI === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

如何使用 http://[my_network_ip]:81/login

获取登录表单

1 个答案:

答案 0 :(得分:1)

我设法通过编辑主 routing.yml 来完成此页面,如下所示:

(...)
fos_user_manual:
    path:     '/login/'
    defaults: { _controller: FOSUserBundle:Security:login }

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

如果尝试path: '/login'但是那个不起作用。

所以,这似乎有效,如果有更清洁的解决方案,我仍然会欢迎提出意见或建议。