我正在尝试使用新的Guard组件。我发现的唯一信息是official docs。
文档中的示例使用Guard来验证API的请求。
根据文档,它也可以与普通登录表单一起使用,我想做什么。
我复制了这个例子,取而代之的是两个函数:
public function getCredentials(Request $request)
{
return array(
'username' => $request->request->get('_username'),
'password' => $request->request->get('_password'),
);
}
public function getUser($credentials, UserProviderInterface $userProvider)
{
$email = $credentials['username'];
$user = $this->em->getRepository('Entity\User')
->findOneBy(array('email' => $email));
return $user;
}
security.yml:
providers:
user_provider:
entity:
class: Entity\User
property: email
firewalls:
user:
switch_user: { role: ROLE_ADMIN }
pattern: ^/
anonymous: ~
provider: user_provider
form_login:
check_path: login_check
login_path: login
logout:
path: logout
target: login
guard:
authenticators:
- app.ldap.authenticator
stateless: false
问题是Symfony没有坚持我的会话。
我只有在为每个请求发送数据表单时才会登录。是否可以像普通登录表单一样发送此数据?
答案 0 :(得分:1)
I found it. I had in security.yml
always_authenticate_before_granting: true
copied from another project :). I deleted it and now it works