我正在尝试使用新的Guard组件。我找到的唯一信息是官方文档。
文档中的示例使用Guard来验证API请求。
根据文档,它也可以与普通登录表单一起使用,这正是我想要做的。
我复制了那个示例并替换了两个函数:
问题在于Symfony不能持久化我的会话。
只有在每个请求中发送数据表单时,我才能登录。是否可能仅发送一次此数据,就像普通的登录表单一样?
文档中的示例使用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不能持久化我的会话。
只有在每个请求中发送数据表单时,我才能登录。是否可能仅发送一次此数据,就像普通的登录表单一样?