使用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.');
}
获取登录表单
答案 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'
但是那个不起作用。
所以,这似乎有效,如果有更清洁的解决方案,我仍然会欢迎提出意见或建议。