我是Symfony的新手并且坚持安全部分。 我已经阅读了有关用户安全性的文档: http://symfony.com/doc/current/book/security.html
我已阅读有关如何创建登录表单的文档: http://symfony.com/doc/current/cookbook/security/form_login_setup.html
所以,当我使用httpbasic登录时,一切正常(除了明显退出)。
如果我使用我的表单登录,那么当我使用正确的凭据时,它会让我通过。但在成功登录后我仍然是匿名的..
我的security.yaml:
security:
encoders:
Bundle\Entity\Users:
algorithm: bcrypt
Symfony\Component\Security\Core\User\User: plaintext
providers:
our_db_provider:
entity:
class: Bundle:Users
property: email
in_memory:
memory:
users:
admin:
password: admin
roles: 'ROLE_ADMIN'
user1:
password: user
roles: 'ROLE_USER'
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
pattern: ^/backend
anonymous: ~
form_login:
login_path: login
check_path: check
default_target_path: /backend
provider: our_db_provider
logout:
path: logout
target: /
success_handler: ~
invalidate_session: true
main:
anonymous: ~
access_control:
- { path: ^/backend/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/backend/, roles: ROLE_ADMIN }
View与symfony文档中的代码相同:
<form action="{{ path('check') }}" class="form-signin form-group" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" class="form-control"/>
<label for="password">Password:</label>
<input type="password" id="password" name="_password" class="form-control"/>
<button class="btn btn-success" type="submit">login</button>
</form>
</div>
为什么登录后我没有正确登录?
有人可以帮助我或者给我一个如何解决的提示吗?
感谢您的建议 迈克尔
编辑: 我在发布这个问题后解决了我的问题......!
唯一的问题是我的config.yaml中的默认设置会话handler_id。 为了解决这个问题,请在config.yaml中进行更改:
framework:
session:
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
为:
session:
handler_id: ~