我一直在关注symfony网站上的教程,我一直在尝试在不使用FOS的情况下获得注册表格,这样我就可以了解这一切是如何工作的。
我沿着这里的步骤走:http://symfony.com/doc/current/cookbook/security/entity_provider.html#security-crete用户实体http://symfony.com/doc/current/cookbook/doctrine/registration_form.html
然而,当我运行它并转到/注册时。我没有得到一个表单,而是出现了一个http登录,要求输入用户名和密码。然而,不管我输入了什么,它都会不断重复,并且不会呈现表单。
您应该更改您的app/config/security.yml。如果你使用这篇文章,你必须有这个安全。yml
security:
encoders:
AppBundle'Entity'User:
algorithm: bcrypt
providers:
our_db_provider:
entity:
class: AppBundle:User
property: username
# if you're using multiple entity managers
# manager_name: customer
firewalls:
default:
pattern: ^/
http_basic: ~
provider: our_db_provider
这意味着所有路由都受到http基本身份验证的保护。你应该为你的安全添加访问控制。yml
access_control:
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
你必须在routing.yml中注册你的路线。这些教程中没有这么说。
# app/config/routing.yml
# ...
register:
pattern: /register
defaults: { _controller: AppBundle:Security:register }