使用" In_Memory"控制器中Symfony的用户

时间:2015-04-09 08:36:04

标签: php ajax symfony login-control

我正在实施一个个性化的登录控制器来访问管理部分。

我想使用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();

  }

1 个答案:

答案 0 :(得分:1)

使用Symfony的最佳理由之一是其出色的安全层,已由专家审核。绕过这是危险和毫无意义的,因为当你已经内置了一个非常好的实现时,你可能会浪费大量的时间来解决这个问题。

只需使用标准的Symfony身份验证库,它可以很好地与内存用户配合使用。如果您需要in_memory用户实施的内容,请查看FOS User Bundle