我正在实施一个个性化的登录控制器来访问管理部分。
我想使用security.yml提供的预先配置的“In_Memory”用户。
如何在控制器中以编程方式访问这些用户?
我正在使用Ajax将凭据提交给Controller中的Verification Action。
这是我的security.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();
}
答案 0 :(得分:1)
使用Symfony的最佳理由之一是其出色的安全层,已由专家审核。绕过这是危险和毫无意义的,因为当你已经内置了一个非常好的实现时,你可能会浪费大量的时间来解决这个问题。
只需使用标准的Symfony身份验证库,它可以很好地与内存用户配合使用。如果您需要in_memory
用户实施的内容,请查看FOS User Bundle。