我正在尝试使用新的Guard http://symfony.com/blog/new-in-symfony-2-8-guard-authentication-component成分。我找到的关于它的唯一信息是官方文档 http://symfony.com/doc/2.8/cookbook/security/guard-authentication.html.
医生的示例使用 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;
}
安全.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 不保留我的会话。
仅当我为每个请求发送数据表单时,我才会登录。是否可以像普通登录表单一样发送一次此数据?
我找到了。我有 security.yml
always_authenticate_before_granting: true
从另一个项目复制的:)。我删除了它,现在可以使用了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)