我正在实现一个个性化的登录控制器来访问管理部分。
我想使用security.yml.提供的预先配置的"In_Memory"用户
如何在控制器中以编程方式访问这些用户?
我正在使用Ajax向控制器中的验证操作提交凭据。
这是我的安全yml配置
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
firewalls:
backend:
pattern: ^/Admin/.*
anonymous: true
provider: in_memory
form_login:
login_path: admin_controller_login
check_path: admin_controller_login
这是登录操作
public function LoginSubmitAction()
{
$username = $_POST["username"];
$password = $_POST["password"];
$login_status = 'invalid';
if($username == 'admin' && $password == 'adminpass')
{
$login_status = 'success';
}
$resp['login_status'] = $login_status;
if($login_status == 'success')
{
$resp['redirect_url'] = 'redirect_url';
}
echo json_encode($resp);
return new Response();
}
使用Symfony的最佳理由之一是其出色的安全层,该层已经过专家评审。绕过它是危险和毫无意义的,因为当已经内置了一个非常好的实现时,你可能会浪费很多时间把它弄错
只需使用标准的Symfony身份验证库,它可以很好地与内存中的用户配合使用。如果您需要in_memory
用户实现没有提供的东西,请查看FOS用户捆绑包。